ふらっと C#,C♯,C#(初心者用) Part141

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 2317-qMUn)
垢版 |
2018/12/15(土) 11:07:07.89ID:0aSEF/I+0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part139
https://mevius.5ch.net/test/read.cgi/tech/1538646998/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2019/02/13(水) 12:41:07.09ID:ARXdU5axd
>>743
>>725
2019/02/13(水) 14:03:56.48ID:jF7nIOB90
>>739
っMaterial Design In XAML Toolkit
マテリアルデザイン風もあるよ
MahApps.Metroとの連携も用意されてる
2019/02/13(水) 18:31:28.53ID:OfMy+HAU0
派遣先の組込上がりのPMがWinFormでタブレット対応アプリ作れと言ってくる

せめてWPFと言ったんだけどオナニーエンジニアうぜーと言われた
2019/02/13(水) 19:00:57.32ID:ixNjFQqZ0
説得できないんなら諦めろ
2019/02/13(水) 19:09:55.36ID:e0d6KWciM
>>750
勘違いするな
お前の仕事はモノを完成させることではなく労働力の提供なんだから黙って従えばよい
お前だって成果物責任を負う立場になれば多少なりとも保守的になるさ
2019/02/13(水) 20:02:03.05ID:NZaXG+jY0
>>750
俺にもお前がオナニーエンジニアにしか見えないんだが。
2019/02/13(水) 20:19:25.70ID:T+klQ57Ga
>>750
変な言い掛かりつけてる奴は恐らくWPFだけが
今時のタッチ操作をサポートしていることも知らないだけだから相手にすることない
755デフォルトの名無しさん (オッペケ Srd1-da9w)
垢版 |
2019/02/13(水) 21:17:02.96ID:sgtLrhrBr
前も言ったけどさ、ガワはブラウザで作ればいいじゃん
WinFormもWPFもUWPもいらん

Windowsアプリだがブラウザで操作する
ASP.Net Coreでもできそうだが
2019/02/13(水) 22:08:44.72ID:kXEWJhMu0
web cad な OSSのlibってあるのけ?
2019/02/13(水) 22:33:58.03ID:luVawDgcd
>>755
オナニー書き込みやめろ
758デフォルトの名無しさん (オッペケ Sr7b-/+m/)
垢版 |
2019/02/14(木) 05:20:39.39ID:MlsuSDTjr
エレクトロンみたいな感じでいいんだよ
裏側はc#、表側はhtml, css, js
.Net CoreならMacでもLinuxでも動くし
これが一番いい
2019/02/14(木) 07:46:22.81ID:Dp0xuhxW0
( ´_ゝ`)フーン
好きにすれば
2019/02/14(木) 08:16:35.34ID:GFNptSHh0
>>758
エレクチオンみたいな感じ?
761デフォルトの名無しさん (オッペケ Sr7b-/+m/)
垢版 |
2019/02/14(木) 11:28:10.10ID:MlsuSDTjr
バカどもには理解できないらしい
2019/02/14(木) 11:37:55.91ID:SFw402Pv0
ファイラを作成しているのですが、ツリービューでPC内のフォルダを検出する方法について、
どのあたりを調べたらいいか教えてください
2019/02/14(木) 12:34:57.27ID:tlcLfILV0
>>762
SYSTEM.IO
2019/02/14(木) 15:12:27.60ID:Q59BY7+Wp
>>760
こういうレスすごい好き
どうしてエレクチオンしないんだろうな
2019/02/14(木) 16:05:20.61ID:SFw402Pv0
>>763
ありがとぅ
2019/02/14(木) 20:27:11.25ID:SFw402Pv0
ソフト上でファイルにアクセスして、フォルダの中身などを表示したいのですが、まず何のフォームを使えばいいんでしょうか?
2019/02/14(木) 20:28:26.38ID:e1Z71hhf0
>>766
picturebox
2019/02/14(木) 20:37:17.42ID:SFw402Pv0
↑ありがとうございます
表示を切り替えたい場合などは、listviewなど別のものを使う感じですね
2019/02/14(木) 20:54:47.71ID:KyyLfHej0
質問があやふやで回答が無茶苦茶なの続いているけど遊んでいるのか?
2019/02/14(木) 21:19:13.61ID:m8w/NK2F0
あ?ころころすっぞ
2019/02/14(木) 21:27:08.41ID:4V+YrcT70
ワッチョイ変わったけど同一人物っぽいね
ソフト完成するまでずっと質問してそう
2019/02/14(木) 23:37:18.13ID:Dp0xuhxW0
>>771
そういうスレでしょ?
2019/02/15(金) 02:03:45.64ID:olENi3qW0
ある要素の中で2番目に高い数値を選ぶエレガントなlinqを教えて下さい
2019/02/15(金) 03:00:48.77ID:ehpwnyaM0
sortedData[1]
2019/02/15(金) 04:23:42.06ID:lsxqATYQ0
Distinct().OrderBy().Skip(1)
とか?
全部同じ値の可能性があるなら知らん。
2019/02/15(金) 04:28:01.15ID:lsxqATYQ0
エレガントとは言えない上に間違ってたorz
2019/02/15(金) 05:03:20.06ID:a5xYZsMx0
Distinct().OrderByDescending().ElementAt(1)
でしょ
2019/02/15(金) 07:02:27.81ID:olENi3qW0
>>774
その2番じぁねーw
2019/02/15(金) 07:03:18.02ID:olENi3qW0
>>777
ありがとうございます。
2019/02/15(金) 09:07:12.92ID:joZk3VJy0
>>777
だいたい良いと思うが、データが2個以上無いと落ちるよね
2019/02/15(金) 10:33:16.88ID:QcXsKv+O0
2番じゃ駄目なんですか
2019/02/15(金) 11:41:11.71ID:a5xYZsMx0
>>780
そんなもん例外キャッチすればいいでしょ
2019/02/15(金) 12:42:08.68ID:VCl1o3iCa
>>782
ArgumentException系をcatchするのは悪手だと思う

.Distinct().OrderByDescending(x => x).Cast<int?>().ElementAtOrDefault(1)
とするのはどうだろう
2019/02/15(金) 12:53:25.53ID:Qph8FA2WM
>>780
そういう状態を想定するならそもそも2番目が無い時の要件書いてないやつが悪い
2019/02/15(金) 12:56:57.66ID:dZvrqvyod
>>780
ちょっとしたQAにあらゆる異常系処理にまで対応したコードまで求めるのは違うと思う
786デフォルトの名無しさん (オッペケ Sr7b-/+m/)
垢版 |
2019/02/15(金) 13:01:49.14ID:tYLxs8Yjr
みんなLinkつこてるの?
2019/02/15(金) 13:02:20.42ID:juddEHEPp
二番目に高い要素を取得っちゅーてんのに二番目が無い場合に
例外じゃなく勝手に既定値を返す方がよほど悪手じゃね?
2019/02/15(金) 13:04:27.67ID:Ayyf6Kdi0
c#で作られているソフトって何があるのですか
2019/02/15(金) 13:18:02.81ID:VCl1o3iCa
>>787
強調し忘れてたから念の為書いておくと
Null許容型にしているから「二番目に高い要素が0」の場合と「二番目が無い場合」は区別できる
それを踏まえた上で指摘してくれているなら……Null許容型使ってたらnullチェックしてくれると信じてるんだがどうだろう
2019/02/15(金) 13:44:54.78ID:juddEHEPp
>>789
正直そのへんは踏まえずケチつけたけど
結局エラー分岐が戻り値か例外かって話になるなら
質問者そっちのけでどちらがスマートか殴りっこしても不毛だなあ
2019/02/15(金) 17:22:07.61ID:Ayyf6Kdi0
vs2017でただの波括弧で特定部分を囲うと、インデントされますが、これはどのような意味を持ちますか?
2019/02/15(金) 17:37:00.14ID:l6xRE0dp0
超かっこいい
2019/02/15(金) 17:54:08.50ID:VXffwVEC0
>>791
ブロックという意味です
2019/02/15(金) 18:14:31.02ID:Ayyf6Kdi0
>>793
if{}
みたいな条件がない
{}
だけの状態でもエラーとはなりませんが、何の意味があるのですか?
見た目を整えるだけですか?
2019/02/15(金) 18:34:36.59ID:QcXsKv+O0
>>788
nikon の現像ソフト
2019/02/15(金) 18:35:17.81ID:T7xyRbUnM
>>794
一時変数を何度も使うときに便利
2019/02/15(金) 18:54:51.21ID:Qph8FA2WM
>>794
C# ブロックスコープ
でぐぐれ
2019/02/15(金) 18:57:50.87ID:Ayyf6Kdi0
↑ありがとう
2019/02/15(金) 19:10:43.29ID:A45VNw280
>>794
スコープを制限するからその中で宣言したローカル変数は外で使えない
たぶん、それ以外に違いはない
2019/02/15(金) 20:08:29.07ID:Ayyf6Kdi0
c#のwinformのmenustripの背景というのは変更できないのでしょうか
この辺はそれぞれのPCに依存してるのかなーと思います
2019/02/15(金) 20:12:53.72ID:gfFuWLI70
>>800
BackgroundImageのプロパティに設定
2019/02/15(金) 21:35:27.37ID:jCkiam8S0
>>792
俺の事か?
2019/02/16(土) 05:07:55.77ID:d5pUUzr/0
>>801
ありがつぅ
2019/02/16(土) 05:57:51.57ID:d5pUUzr/0
c#でスクリーンショット撮影するソフトは不可能ですか?
2019/02/16(土) 07:29:21.89ID:+4z8MAVsd
いいえ
2019/02/16(土) 11:13:44.16ID:I7KLi1I90
>>804
検索すればすぐわかる
2019/02/16(土) 11:55:58.09ID:mmBt6tnL0
>>804
MessageBox.Show("PrintScreenボタンを押せろください");
2019/02/16(土) 16:07:58.46ID:n2t8JUOl0
Cでは数値型変数を複数の場所から参照するためには、変数のポインタ得てそれを使いますが
C#ではポインタ無いんで、数値フィールド持つクラスを作って
そのインスタンスから参照するしか無いんですか?
2019/02/16(土) 17:01:04.63ID:dfsqwbBrd
別にポインタはあるぞ。
行儀わるいから、使うべきかよくかんがえたほうがいいだけ。
2019/02/16(土) 17:01:47.04ID:mSWYdTC80
>>808
スカラー型なら直接読み書きすれば良いのでは無いかと思いますが…配列なら参照型です
変数参照を扱うなら強化されたrefやoutを使えます、またunsafeだとポインタも使えます
TypedReferenceというのも有りますがコレを扱うための__makerefなどは些かアレなので…

.NETには値参照用のSystem.Runtime.CompilerServices.StrongBox<T>などジェネリック既存型も有ります
2019/02/16(土) 17:09:27.87ID:eqms90yHd
定数参照的な話?
2019/02/16(土) 17:11:36.23ID:PR5Tb5Rba
>>808
Cでもスコープ内の変数は普通に読み書き可能。
スコープ外の変数でもその値を引数として関数に渡すことができる
ポインタが必用になるのは変数を書き換える汎用的な関数を書く場合だけ
C#の場合、同じことはrefやout付きの引数で実現できる
2019/02/16(土) 17:20:05.45ID:d5pUUzr/0
http://nn-hokuson.hatenablog.com/entry/2017/08/17/200918#%E3%83%9C%E3%83%BC%E3%83%AB%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B
個々のサンプル通りにゲームを作成中なのですが、paintイベントハンドラってなんでしょうか
paintというイベントは何によって発生するのかよくわかりません
2019/02/16(土) 17:27:37.84ID:NXeshUsvp
>>813
> paintイベントハンドラってなんでしょうか
描画をするためのハンドラです

> paintというイベントは何によって発生するのかよくわかりません
描画をしたい時に発生します
2019/02/16(土) 17:31:08.38ID:d5pUUzr/0
↑描画とはどういう操作のことでしょうか?
フォームがロードされた時点で実行されます
2019/02/16(土) 17:37:19.60ID:NXeshUsvp
>>815
ゲームの場合は勝手に描画が実行され続けます
2019/02/16(土) 18:16:49.35ID:d5pUUzr/0
↑自動的にですか
ありがとうございます
2019/02/17(日) 12:34:21.09ID:Cn2cXppc0
using System;
public class Hello{
public static void Main(){
// Your code here!

private void myfunction(){
Console.WriteLine("jfoasd");
}

myfunction();

}
}

paizaでC#を入力するとエラーが出るのですが、どこがおかしいですか?
private voidの部分が予期されていないというエラーが出ますね
https://paiza.io/ja
2019/02/17(日) 12:38:27.42ID:51VRzV3m0
staticな関数から動的な関数を呼び出してるんじゃない?
2019/02/17(日) 12:59:41.60ID:j6Gi9YSR0
ローカル関数をサポートしてないだけでしょ
2019/02/17(日) 13:00:14.76ID:I+dbukVsp
>>818
private voidの部分がおかしいですね
2019/02/17(日) 14:31:14.74ID:cAaLtQSp0
>>818
まずこういう質問はpaizaの問題でC#のスレでやられても混乱するからVisualStudioでの話以外はやめてくれ
コード書けるサイトが間違っていないって保証が無い。実際動くコード転載してもエラーって何度も経験しているからな
VisualStudioで書くのならターゲットフレームワークを.Net4.7以上にしてprivate void myfunction()からprivate外してvoid myfunction()で動く
2019/02/17(日) 16:38:09.76ID:Agaj4T0x0
たすけて!これ何が違うの?
どっちも普通に使えるよね?
ちな初心者
@List<T> list = new List<T>();
AList<T> list;
2019/02/17(日) 16:55:04.91ID:2ynU5zYy0
後者は中身が無いからそのままじゃ使えない
2019/02/17(日) 17:04:55.99ID:KqlDIF5Pa
>>823
1はlistという変数の定義と同時にList型のインスタンスで初期化している、普通に使える
2はlistという変数を定義しただけの状態
ローカル変数の場合は後で初期化する必要がある、未初期化のまま使おうとするとコンパイルエラー
クラスや構造体のフィールドの場合は暗黙でnullで初期化される、「普通に使う」ためには後でList型インスタンスを代入してやる必要がある
2019/02/17(日) 17:07:18.00ID:naWxhgEk0
>>823
> @List<T> list = new List<T>();

List<T> list;
list = new List<T>();
と同じ

> AList<T> list;
はlistの実体が設定されてないからそのままlist.Add(…)とかやると例外が発生する
2019/02/17(日) 17:07:30.92ID:B/nvmulQd
>>822
.NETのバージョンなにか関係あるか?
2019/02/17(日) 17:12:13.37ID:tKx1WgvG0
>>823
C++と違ってクラスは強制的に参照型で変数宣言がポインタと同等なのよ
宣言だけではコンストラクタはもちろんインスタンスも割り当てられない
2019/02/17(日) 17:26:45.23ID:Cn2cXppc0
>>822
paiza だと挙動が少し違うようです
このサイトはやめときます
2019/02/17(日) 17:35:39.94ID:Cn2cXppc0
ちょっとコードを確認したいというときに、使えるツールありますか?
わざわざプロジェクト作るほどではないときですね
python のidleのようなものです
2019/02/17(日) 17:38:44.31ID:Ox4HquXb0
>>830
C#インタラクティブ
2019/02/17(日) 17:41:30.40ID:0sFVNd3o0
cscは標準で入っているでしょ
2019/02/17(日) 17:54:52.02ID:B/nvmulQd
>>830
LINQPad
2019/02/17(日) 18:01:37.03ID:/k3HmPSI0
csiだな
2019/02/17(日) 18:03:11.00ID:owh3i+7dM
スクリプトみたいに対話型でできる?
2019/02/17(日) 18:18:26.04ID:Cn2cXppc0
↑ありがとうございました
2019/02/17(日) 18:21:23.19ID:naWxhgEk0
>>830
notepad.exe + csc.exe
2019/02/17(日) 18:28:37.10ID:Agaj4T0x0
>>825
>>826
>>828
NEWはしなきゃいけないのね
有難う御座います
2019/02/17(日) 18:29:26.69ID:Cn2cXppc0
>>833
これいいっすね
初心者なのでしばらく練習します
2019/02/17(日) 20:45:16.60ID:Cn2cXppc0
vs codeもちょっとしたコードの確認に使うものなんでしょうか?
2019/02/17(日) 21:29:49.15ID:I+dbukVsp
>>840
使うひともいれば使わないひともいますね
2019/02/18(月) 01:50:55.38ID:pxm+KTrW0
入力項目が沢山ある画面で、変更を保存せず画面を閉じようとしたときは警告を出したいです。
何も変更せず画面を閉じる場合は警告を出さずに閉じたいです。

この場合の変更チェックは入力項目に紐づく変数1個1個をチェックする以外に、スマートな方法は無いでしょうか?
入力項目に紐づく変数はデータクラスとして用意しているので、画面開く直前にハッシュのようなものを計算し退避しておき、
画面を閉じる直前にハッシュを再計算し比較すれば行けると思うのですが、オブジェクトのハッシュを求めるのは
GetHashCodeでいいのでしょうか?
2019/02/18(月) 01:58:21.05ID:0Vx/m/dz0
ないね
上に1dot
下に1dot
って動かされて終了したときは
出したくないんでしょ?
何か妥協点がない限り全部比較するしかないよ
2019/02/18(月) 02:13:28.99ID:Y8U6L+e90
>>842
データクラスとして纏めてあるなら、GetProperties()やGetFilelds()で抽出した各変数を
ループで比較すればそこそこスマートなんじゃない。
2019/02/18(月) 02:29:46.98ID:GC8vaMYY0
俺ならデータクラスにINotifyPropertyChangedを実装するかな
2019/02/18(月) 02:53:09.62ID:+SQV8UeVa
>>842
直接の回答でなくてごめん。

そういうMSにありがちなUIはたぶん

(1) 変更をキャンセル可能であること
(2) OKボタンをクリックした時点で初めて変更が反映されること

が要件になってるからそういう仕様になるんだと思うけど、こんな要件が必用ないなら
画面の入力項目の変更を変更があった時点でその都度対応するオブジェクトの
プロパティーに反映させてしまえば、「変更を保存せず画面を閉じようとしたときは警告を出」す
必用自体がなくなる

まあ一種の手抜きだけど、場合によっては許容される手抜きだと思う
2019/02/18(月) 03:23:01.21ID:pxm+KTrW0
>>845
いいアイデアですね。
プロパティ1つ1つに
if(beforeValue!=afterValue)
 OnPropertyChanged();
みたいな実装が必要なのが若干だるい気がしますが。

>>846
つまり変更した瞬間に即確定って意味でしょうか?
後出し情報で申し訳ないですが、最終保存先がDBで
アプリにとって比較的重要な情報の更新をしようとしています。
なるべく意図しない変更を防ぎたいです。
■ このスレッドは過去ログ倉庫に格納されています