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

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ 8b75-uWnk)2018/02/04(日) 22:02:28.59ID:FbKpa1HN0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part134
http://mevius.5ch.net/test/read.cgi/tech/1511951038/
■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/

■コードを貼る場合は↓を使いましょう。
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: default:vvvvv:1000:512:----: EXT was configured

2デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/04(日) 22:10:08.05ID:HudK1GnQ0
>他のスレッドでは書き込めないような低レベルな質問、

public class cdata
{
public double Ampea ;
public double Volt ;
public double Temp ;
public double Activity ;
public double Flow ;
}

cdata cdt;
double[] ddt;
cdt.Temp をddt[2]としても扱いたいのだが、どういうように定義したらいい?

>>2
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/indexers/index

あれ、インデクサーって伸ばす表記になったんだっけ?

>>2
俺ならenumかな?


>>5
それは知ってるけど、結局定着してないでしょ
インデクサって表記されることが多かったような気がしたけど、記憶違いか

知ってたら>>3みたいなこと言わないと思うが...
まあ定着とか言ってるぐらいだからちゃんと理解してないんだろうな

>>2
cdataをstructに変えた上で、
cdata cdt;
double* ddt = &cdt;
ddt[2] = 100;
もしくは、FieldOffset(0)で fixed double[5] をcdtのフィールドに定義する

まあ、でも、言語がそういう仕様になってないのにそんな書き方するな
ってのは一言言っておきたいね

>>7
しょうもないことで絡む奴。アホか
君がべき論と現実の区別がつかないだけ。

例えば政府の勧告に従えば破綻は「破たん」と書かなければならないが、
現実には新聞とTVの字幕以外のほとんどのメディアでは相変わらず破綻と表記される。

>>5も同じこと

これはたぶん政府じゃなくて日経あたりが震源地だろうけど、
「ファストフード」表記のごり押しも結局定着しなかったね

12デフォルトの名無しさん (ワッチョイ 9fd2-uiFW)2018/02/04(日) 23:11:50.23ID:zMXPgQ7i0
必死だな

13デフォルトの名無しさん (ワッチョイ 9fb3-mP5N)2018/02/04(日) 23:20:40.41ID:88eIJAAv0
>>10
>>5のリンク先読んでないのか?
それとも理解できないのか?
MSの社内ルールの話だから世間で定着してるかどうかとは関係なくMSの公式ドキュメントでは伸ばすって話な

>>13
アホだねえ
だからそのMSのルールは政府の勧告に従ったもの。
Vistaが出る時にそういう触れ込みだったでしょ

だいたい、インデクサなんて一般的じゃない用語がどう発音されるかなんて
その業界次第だ

しかし、人を無知だと思い込まないと死ぬ病の奴、
いちいち他人に絡まないと死ぬ病の奴って何なの

こっちが>>5みたいな動きがあったことを意地でも知らなかったと思いたいらしいけど、
むしろ知ってるから>>3みたいな疑問が出てくるんであって、
知らなきゃよくあるカタカナ用語の表記の揺れかなで終わり。

17デフォルトの名無しさん (ワッチョイ 9f60-soeb)2018/02/04(日) 23:38:51.63ID:p5zvJFKF0
まあそう気になさらないで…

18デフォルトの名無しさん (ワッチョイ 9fd2-uiFW)2018/02/04(日) 23:40:56.72ID:zMXPgQ7i0
キチガイに触った方が負けやな

19デフォルトの名無しさん (ワッチョイ 9fb3-mP5N)2018/02/04(日) 23:47:19.81ID:88eIJAAv0
>>14-16
政府からの圧力があったのか世間の動向を見たのかは知らんがMSが社内ルールを改訂したと言う事実は変わらない
その事実を知ってて>>3みたいな疑問を持つとかどんだけ理解力がないんだよ w

20デフォルトの名無しさん (ワッチョイ 9f06-wbgk)2018/02/04(日) 23:51:14.32ID:RXHjrV0B0
一時活字関係の業界で、文字を沢山詰め込むためにーで終わるカタカナ語の最後を切るのが流行ったのさ
その名残で伸ばさない人の勢力が弱まったのかね?

21デフォルトの名無しさん (ワッチョイ f7e3-uppE)2018/02/05(月) 00:02:48.36ID:qmixRvcQ0
俺はお前らのためにランダムで「ー」を
付けたり付けなかったりするよ
たまに「-」だったり「―」だったり
「一」だったりもしてみるよ

22デフォルトの名無しさん (ワッチョイ 9fb3-mP5N)2018/02/05(月) 00:06:57.92ID:BWargw5G0
活字業界?
単にJISでそう決まってただけやで...

23愛恥人2018/02/05(月) 00:33:45.47
これは>>7が悪い

24デフォルトの名無しさん (ワッチョイ 9fb3-mP5N)2018/02/05(月) 00:49:08.59ID:BWargw5G0
まあ>>18の言う通りキチガイに触った奴が負けって言われりゃ返す言葉はないけど... w

25デフォルトの名無しさん (ワッチョイ 979a-it6M)2018/02/05(月) 00:51:50.23ID:ACPBMebm0
テンプレ読めない人たちは消えて

26デフォルトの名無しさん (ワッチョイ ffe8-j4Dg)2018/02/05(月) 09:13:58.24ID:2ki6mM3n0
DirectXや他のフレームワークを使わずに
VSYNCを待つ方法があったら教えてください

27デフォルトの名無しさん (ワッチョイ f7d3-wbgk)2018/02/05(月) 09:56:49.64ID:qXocenM+0
>>26
無いと思うけど
IDXGIOutput::WaitForVBlankが嫌な理由は?

28デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/05(月) 12:22:45.29ID:GlpP/XMd0
enum enDispNum { min = 2, max = 5 };

int[] dispno = new int[] {(int)enDispNum.min , (int)enDispNum.max }; //エラー
int[] dispno = new int[] {2,5}; //OK
int aa = (int)enDispNum.max; //OK

enumの挙動がわからん。なんで?

29デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/05(月) 12:26:30.78ID:GlpP/XMd0
enum enDispNum {dumy, min = 2, max = 5 };
ダミーいれたら動いた。w 笑かす。

30デフォルトの名無しさん (ワキゲー MMdf-lmiZ)2018/02/05(月) 12:26:34.45ID:Bh+ceQwrM
エラーメッセージ読めば? うちでは再現しないけど

31デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/05(月) 12:31:57.15ID:GlpP/XMd0
enum enDispNum:int {dumy, min = 2, max = 5 };
宣言で int 明示してもcastしないとエラーする。 Dumyがないとエラーするし
キャストしないと駄目だし、なんか使いにくいな。

32デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/05(月) 12:35:37.13ID:GlpP/XMd0
>30
エラー 1 型 'elRemoteControl.enDispNum' を 'int' に暗黙的に変換できません。
明示的な変換が存在します。(cast が不足していないかどうかを確認してください)

33デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/05(月) 12:40:51.97ID:GlpP/XMd0
>30
同じように2,5で数値していをしてごらん。きっと笑えると思う。

dumyがなくても min=0なら動作するんだろう。おそらく。
例文みたらどれもこれも、数値していがないか、0は一つある。この場合は
dumy=0が暗黙定義されると見た。

>>32
これはどうでしょう?

int[] dispno = new int[] {(int)(enDispNum.min) , (int)(enDispNum.max) };

35デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/05(月) 12:47:43.95ID:GlpP/XMd0
それだとdummyがなくても動く。不思議な、、、

36デフォルトの名無しさん (ワキゲー MMdf-lmiZ)2018/02/05(月) 12:51:23.30ID:Bh+ceQwrM
VS2010でもVS2013でもVS2017でも再現しない
https://ideone.com/glor7T
ideoneでも再現しない

37デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/05(月) 12:55:22.36ID:GlpP/XMd0
そうか。再現する物もあれば、しないものもある。()でくくるといけるものもある。
しかしenumを使う時は
1. dummyを入れる。
2.宣言でキャストしても 個別に必ずキャストすること。
というのを守った方がいいかも。

なんでそうなるw
確実の君が何か変な勘違いしてるだけだってww

39デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/05(月) 13:02:01.82ID:GlpP/XMd0
「dummy を入れたらコンパイルエラーが止まる。正常にコンパイルされて
動作も正常に動作する。」
この理由を説明してごらんよ。
dummyを入れる以外にはなにも変更していない。

40デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/05(月) 13:08:04.86ID:GlpP/XMd0
やっぱ想像したとおりだ。min=0にしたら

enum enDispNum:int {min = 0, max = 5 };
これなら
int[] dispno = new int[] {(int)enDispNum.min , (int)enDispNum.max }; //OK
これでもOKだ。コンパイルエラーしない。

41デフォルトの名無しさん (ワキゲー MMdf-lmiZ)2018/02/05(月) 13:40:21.31ID:Bh+ceQwrM
まあ特殊なコンパイラ使っててそれがバグってるんだろう
とりあえず.NET Framework向けのMS製csc.exeは
> エラー 1 型 'elRemoteControl.enDispNum' を 'int' に暗黙的に変換できません。
このエラーが出た場合「エラー 1」じゃなくて「error CS0266」って出すし

42デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/05(月) 14:18:42.87ID:GlpP/XMd0
VS2013(Pro)だよ。Update5 .NETは4.7
因みにエラー1は一覧の番号だろ。一覧をコピペしただけだから。最初のエラーって意味だ。
2番目のエラーはない。

43デフォルトの名無しさん (スップ Sd3f-uiFW)2018/02/05(月) 14:22:50.07ID:mbLKcWnpd
>>42
コンパイラの話題じゃないの?

44デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/05(月) 14:25:03.58ID:GlpP/XMd0
どういう意味、VSで別のコンパイラーを動かすってこと? そんな高度なこと知りません。
標準のWindowsFormアプリケーションだよ。

45デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/05(月) 14:25:56.59ID:GlpP/XMd0
       List<List<Label>> ccValueSetLabel = new List<List<Label>>();
      private void DataRefresh(List<List<double>> datasc)
       {
           int colcount = 0;
           foreach (var dev in ccValueSetLabel)
           {
               var datas = datasc[colcount++];
               List<string> strdt = new List<string> ();
               int count=0;
               par.GetInstance().ElDataList.ForEach(x => strdt.Add(string_format(x.format, datas[count++])));
               count = 0; dev.ForEach(x => x.Text = strdt[count++]);
           }
       }
こういう場合に折角foreachを使っているのに、countを使うのはなんだかなーと思う。foreachを2重かするとか
addみたいにドンドンgetできる方法ってないの?

46愛恥人2018/02/05(月) 14:35:35.29
>>42 エラー出てる画面うp
>>45 http://d.hatena.ne.jp/chiheisen/20111031/1320068429 の結合のところにある関数を使うとか

47デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/05(月) 14:41:33.37ID:GlpP/XMd0
もうEnumはいいよ。原因はわかったし、そんなものだろ。

48愛恥人2018/02/05(月) 14:42:47.42
俺も見たいからうpして(>_<)

49デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/05(月) 15:04:28.59ID:GlpP/XMd0
エラー 1 型 'elRemoteControl.enDispNum' を 'int' に暗黙的に変換できません。
明示的な変換が存在します。(cast が不足していないかどうかを確認してください)

これだよ。だから41が言ってたerror番号だよ。エラー一覧をコピペしたけど
出力一覧の方にはエラー番号がでてた。

50デフォルトの名無しさん (ワッチョイ 9fd2-UzD8)2018/02/05(月) 16:39:11.49ID:3nUubkW+0
こちらでは再現しないので、そのエラーが本当に出ると信じられない
本当なら今後のために原因をきちんと把握しておきたいので、とりあえず件のコードとエラーのスクリーンショットを提示してほしい

51デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/05(月) 17:19:51.66ID:GlpP/XMd0
 一寸聞きたいんだがキャストをかませないとエラーする件もそちらでは、出てないの?
 キャストなしでも動く? とすると俺のpCがおかしいな。 
でもキャストがいるとかDumyがいるとかだとやっぱり笑ってこらえる不具合含みでしょ。
俺のPCはDELLのディスクトップだからそこそこ早いやつだよ。(ゲーム用じゃないけど)

52愛恥人2018/02/05(月) 17:23:06.32
キャストをかませないとエラーとは?

意地悪だなあw
こんなの確認するまでもないでしょ

まず間違いなく、この質問者さんは、問題に遭遇したのとは
別のコードをここに書いてる。

要するに、彼の問題の原因は彼が思い込んでいるのとは別のところにある。

こんなところに書き込んでる時間があるなら
その間に彼の仮設を検証する最小限のコードを書いて確認すりゃいいのにと思うんだけど、
なぜかそれをしないんだよねこういうあわてんぼうさんは。

54デフォルトの名無しさん (ワッチョイ 1714-lmiZ)2018/02/05(月) 17:28:42.66ID:XmQ50b1K0
列挙型を数値型に代入するには明示的なキャストが必要なのは言語仕様
int[]の初期化子で全部intへ明示的にキャストしてるのにエラーが出るのはおかしい
まあそんなgdgdはいいからスクリーンショットはよ

55デフォルトの名無しさん (ワッチョイ 779f-7xt/)2018/02/05(月) 17:34:20.84ID:HpRDRToC0
別な何かを int にキャストしようとしてるんでないの?

56デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/05(月) 17:35:14.81ID:GlpP/XMd0
enum enDispNum { min = 2, max = 5 };
int[] dispno = new int[] {(int)enDispNum.min , (int)enDispNum.max }; //エラー
int[] dispno = new int[] {(int)(enDispNum.min) , (int)(enDispNum.max) }; //OK
int[] dispno = new int[] {(enDispNum.min) , (enDispNum.max) }; //エラー
int[] dispno = new int[] {enDispNum.min , enDispNum.max }; //エラー
int[] dispno = new int[] {2,5}; //OK
int aa = (int)enDispNum.max; //OK

enum enDispNum { min = 0, max = 5 };
int[] dispno = new int[] {(int)enDispNum.min , (int)enDispNum.max }; //OK
int[] dispno = new int[] {(int)(enDispNum.min) , (int)(enDispNum.max) }; //OK
int[] dispno = new int[] {(enDispNum.min) , (enDispNum.max) }; //エラー
int[] dispno = new int[] {enDispNum.min , enDispNum.max }; //エラー

enum enDispNum { dummy, min = 2, max = 5 }; これもmin=0にするのと同じ
(int)キャストなしは全部エラー

57デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/05(月) 17:39:57.27ID:GlpP/XMd0
上の状況は明示的に enum xxx:int{} やっても同じ。
enumで午前中潰してウンザリ。

58デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/05(月) 17:46:56.70ID:GlpP/XMd0
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/enum
この列挙型では、要素の並びは 1 からではなく、 0から開始します。 ただし、列挙型には
値が 0 となる定数を含めておくことをお勧めします。 詳細については、列挙型を参照してください。

59愛恥人2018/02/05(月) 17:47:19.57

60デフォルトの名無しさん (ワッチョイ 57bb-CU+w)2018/02/05(月) 17:53:40.29ID:0BVjum1K0
なんだ愛恥人て

61愛恥人2018/02/05(月) 18:03:46.69
ちな女

62デフォルトの名無しさん (ワッチョイ ff9a-wbgk)2018/02/05(月) 18:12:19.52ID:ny8aWquH0
idやワッチョイ隠す人は相手にしない方がいい
>>56
上のEnumの場合enDispNumのメンバーが数値だと推論できないんだろうな
理由は多分自分で貼った>>58
enDispNum.minなどのくくりにすると数値が定義済みだからキャストできる
キャストする対象をきちんとかっこで括らないとだめ

63デフォルトの名無しさん (ブーイモ MMcf-UYd6)2018/02/05(月) 18:13:19.15ID:Ju4kmi+XM
>>45
ソース汚すぎて何がしたいのか意味がわからん
道具に文句言う前にまずはリーダブルコードでも読んで自分のセンスを何とかしたらどうだ

64愛恥人2018/02/05(月) 18:19:46.11
知ったかが偉そうなこというなよ(>_<)

>>62
全然理由になってないw
っていうか、質問者が言ってる現象が本当に再現できるか、自分で試してみました?w

あと、キャスト演算子の優先順位はドット演算子より高いはずなので、
キャスト演算子の後を()で括るかどうかで式の値は変わらないはず。

要するに、>>56はデタラメw

あれ、逆書いてるw
× キャスト演算子の優先順位はドット演算子より高いはずなので、
○ ドット演算子の優先順位はキャスト演算子より高いはずなので、

その前にvs2013で.net 4.7ってサポートしてるのか?

68デフォルトの名無しさん (スップ Sd3f-uiFW)2018/02/05(月) 18:29:09.74ID:mbLKcWnpd
>>67
Developer pack入れたらおーけー

今のところ質問者以外の環境では誰も再現してないのは
環境が違うからか?

こんな変な挙動になる環境って言うのも考えにくいので、質問者が壮大に勘違いしてるか単なるネタの疑念が拭いきれない
ソースとエラーになってる画面のスクショがででくるまでは傍観するわ

71デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/05(月) 19:12:13.02ID:GlpP/XMd0
色々想像できる名前が入ってるからスクリーンショットはだめだな。それにスクリーンショットみても
何も変わらんよ。エラーが一行でてるだけだから。

そもそもEnumて数値を設定して使わないから気が付かないだけだろ。それにもう
今月一杯で2013はやめて2017に変更するし。

72デフォルトの名無しさん (スップ Sd3f-qmJt)2018/02/05(月) 19:25:04.18ID:jWi5SYZhd
クソスレ

73デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/05(月) 19:44:13.45ID:GlpP/XMd0
List<string> strdt = new List<string> ();

count = 0; dev.ForEach(x => x.Text = strdt[count++]);
この部分は
dev.Zip(strdt,(x,y) => x.Text = y);
これで動くと思ったが動作しないがなぜ?

74デフォルトの名無しさん (ブーイモ MMcf-UYd6)2018/02/05(月) 19:57:49.49ID:a8Suwjh7M
>>73
LINQの中で副作用を書くな

75愛恥人2018/02/05(月) 20:21:57.80
Zipに与えられたラムダ式は遅延実行されるから。
ZipしてからForEachしようぜ

76愛恥人2018/02/05(月) 20:23:04.21
devとstrdtをマージしたものにForEach

77デフォルトの名無しさん (ワッチョイ f781-MydX)2018/02/05(月) 22:13:35.29ID:XPnhCx0B0
正規表現を使って文字列から、○○月を除くコードを教えてください。
○には、1から12までが入ります。

78愛恥人2018/02/05(月) 22:32:29.56
using System.Text.RegularExpressions;

var text = "dejdo8月dksk12月diwk";
text = Regex.Replace(text, @"\d+月", "");

123456789月火水木金土

80愛恥人2018/02/05(月) 23:54:36.42
using System.Text.RegularExpressions;

var monthPattern = new Regex(@"(\d+)月([^火水木金土日])");
var monthRemover = new MatchEvaluator(mc => Enumerable.Range(1, 12).Contains(int.Parse(mc.Groups[1].Value)) ? mc.Groups[2].Value : mc.Value);
var inputText = "kok3月rq12月12461123456789月火水木金土";
var monthRemovedText = monthRegex.Replace(inputText, monthRemover);

81愛恥人2018/02/05(月) 23:56:41.11
間違えた(>_<)

82愛恥人2018/02/06(火) 00:14:56.39
2箇所(>_<)

普通に正規表現使えばいいのに…
[1-9]とか|とか1[0-2]とか

84デフォルトの名無しさん (ワッチョイ 9775-uWnk)2018/02/06(火) 01:41:51.19ID:XGJpv/sv0
9999999月火水木金

85デフォルトの名無しさん (ワッチョイ f781-MydX)2018/02/06(火) 02:00:35.27ID:ZfaRyY6g0
すみません、曜日ではなく年月の月なんです。

86デフォルトの名無しさん (ワッチョイ ff80-g5j1)2018/02/06(火) 02:01:52.73ID:tiswDOzX0
数字が、1〜2回

\d{1,2}月

>>85
細かいけど、リーディングゼロとか、ゼロ以外の数が前にくっついてた場合
どう処理すべきかはっきりした方がいいかも

88デフォルトの名無しさん (ワッチョイ f781-MydX)2018/02/06(火) 06:20:06.81ID:ZfaRyY6g0
>>78-87
アドバイスありがとうございます。
やってみます。

89デフォルトの名無しさん (ワッチョイ f7f7-NsDz)2018/02/06(火) 08:01:18.07ID:eVD8eHcS0
var list_hoge = new List<Data_hoge>() {
new Data_hoge(){Key="1",Value=22 ,Flag=true},
new Data_hoge(){Key="2",Value=23 ,Flag=true},
new Data_hoge(){Key="3",Value=24 ,Flag=false},
new Data_hoge(){Key="4",Value=23 ,Flag=true},
};

この様なデータがあったときKeyに相当する引数(int=1〜4)を入れると
Flagがtrueのものの中でvalueが最大値を取るならtrueを返すメソッドを作りたいのですが
どうすればいいでしょうか?
LINQだと嬉しいです

90デフォルトの名無しさん (ワッチョイ f7f7-NsDz)2018/02/06(火) 08:08:20.72ID:eVD8eHcS0
public bool saidaichidesu(int x)
{
var list_hoge = new List<Data_hoge>() {
new Data_hoge(){Key="1",Value=22 ,Flag=true},
new Data_hoge(){Key="2",Value=23 ,Flag=true},
new Data_hoge(){Key="3",Value=24 ,Flag=false},
new Data_hoge(){Key="4",Value=23 ,Flag=true},
};

var flaggedList_hoge = list_hoge.Where(data => data.Flag);
if (flaggedList_hoge.Count() > 0)
{
var maxValue = flaggedList_hoge.Max(data => data.Value);
この先どう書けばいいかわからない
}
return false;
}

91恥人2018/02/06(火) 08:23:21.72
Keyに相当する引数の役割は?

92デフォルトの名無しさん (ワッチョイ f7f7-NsDz)2018/02/06(火) 08:26:12.74ID:eVD8eHcS0
位置、座標の様なものになります

93恥人2018/02/06(火) 08:32:59.69
最大値を持つ要素の中でKeyがxと一致するものを返したいということ?

94デフォルトの名無しさん (ワッチョイ f7f7-NsDz)2018/02/06(火) 08:40:29.46ID:eVD8eHcS0
最大値をもっているもののkey(複数あり)がxと一致するかどうかを確認して、一致するならtrueを返したいです
keyがstringになっていますがこれをintにしても構いません

95デフォルトの名無しさん (ワッチョイ f7e3-uppE)2018/02/06(火) 08:56:28.56ID:xtryCv8p0
こんな誰でもできることイチイチ人に聞いてるの?

96デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 10:10:37.94ID:vApM+tA70
寧ろ多くの人は解らんと思うが、、、先ずは質問の意味が正確に解るかどうかだな。
それが最大の問題だ。
「質問はすでにその中に解を含んでいる」、質問者が質問を正確に組み立てられないのは質問者の
責任として放置される性質のものではなくて、回答者の技量によって正確な質問に
組み立て直す。これは頭のいい回答者の責任になる。
でその役割りが君というわけだ。

97デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 10:21:16.59ID:vApM+tA70
saidaichidesu(1)  −−> False
saidaichidesu(2)  −−> true
saidaichidesu(3)  −−> false
saidaichidesu(4)  −−> true
saidaichidesu(その他)  −−> false
上の例ではこういうリターンを期待してる? もしこうであれば簡単だよ。

98デフォルトの名無しさん (ワッチョイ f7f7-NsDz)2018/02/06(火) 10:55:56.66ID:eVD8eHcS0
>>97
はい!それと同じです!

99デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 11:26:06.22ID:vApM+tA70
           class Data_hoge{
               public            string Key;
               public            int Value;
               public            bool Flag;
           }
           public bool saidaichidesu(int x) 
           { 
                List<Data_hoge> list_hoge = new List<Data_hoge>() { 
                new Data_hoge(){Key="1",Value=22 ,Flag=true}, 
                new Data_hoge(){Key="2",Value=23 ,Flag=true}, 
                new Data_hoge(){Key="3",Value=24 ,Flag=false}, 
                new Data_hoge(){Key="4",Value=23 ,Flag=true}
                };

                var maxv = list_hoge.Where(dt => dt.Flag).ToList().Max(dt => dt.Value );
                var res = list_hoge.Where(dt => dt.Value == maxv).ToList();
                foreach (var dt in res)
                {
                    if (x == int.Parse(dt.Key))
                        return true;
                }
                return false;
           }     

100デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 11:28:45.34ID:vApM+tA70
苦戦した。w 一行では難しいな。もっといい方法があると思う。

101デフォルトの名無しさん (ワッチョイ 77d3-+DFt)2018/02/06(火) 11:41:32.95ID:YagpYDjh0
たびたびお世話になります。
ラムダ式で作ったスレッドの優先度を変えるにはどのようにしたらよいのでしょうか。
Task sendTask = Task.Factory.StartNew(() => や
ThreadStart action = () =>
で作成したスレッドです。

102デフォルトの名無しさん (ワッチョイ f7f7-NsDz)2018/02/06(火) 11:47:34.51ID:eVD8eHcS0
>>100
ありがとうございます!

103デフォルトの名無しさん (スップ Sd3f-9ylI)2018/02/06(火) 11:54:00.12ID:WJaKumy6d
ThreadはいいとしてThreadPoolに優先度って設定出来たかしら?

104デフォルトの名無しさん (ワッチョイ 77d3-+DFt)2018/02/06(火) 11:58:32.99ID:YagpYDjh0
すみません、101ですが
Threadだけでも良いです。
Taskは優先度の概念?がなさそうですね。

いつから初心者の質問に初心者が答えるスレになったんだ


厳しいことを言うようだけどコードレベルも一般に全然届いてない
それは参考にならない

106デフォルトの名無しさん (スップ Sd3f-9ylI)2018/02/06(火) 12:28:02.63ID:WJaKumy6d
>>104
手元に確認するための環境無いから試せないんだけど、作成したThreadStartデリゲートをThreadクラスに食わせてPriority プロパティを設定してスタートで行けるはず。

Thread.Priority プロパティは以下のリンクで
https://msdn.microsoft.com/ja-jp/library/system.threading.thread.priority(v=vs.110).aspx

107デフォルトの名無しさん (オッペケ Srcb-ggKF)2018/02/06(火) 12:28:10.60ID:v2bC5kd9r
>>105
ずっとそうだけど君を含めて

>>90
なんかよー分からんけど、

public bool IsMax(string key)
{
  var hogeList = new List<Data_hoge>()
  {
    new Data_hoge(){Key="1",Value=22 ,Flag=true},
    new Data_hoge(){Key="2",Value=23 ,Flag=true},
    new Data_hoge(){Key="3",Value=24 ,Flag=false},
    new Data_hoge(){Key="4",Value=23 ,Flag=true},
  };
  var max = hogeList.Max(x => x.Flag ? Value :Int32.MinValue);
  return hogeList.Any(x => x.Fkag && x.Key == key && x.Value == max);
}
試してないけどこんな感じでいける気が

しかし、>>89の日本語は酷すぎる
何を言ってるのかさっぱり分からない

109デフォルトの名無しさん (ワッチョイ 77d3-+DFt)2018/02/06(火) 12:58:23.10ID:YagpYDjh0
>>106
ありがとうございます。
確認してみます。

110デフォルトの名無しさん (ワキゲー MMdf-lmiZ)2018/02/06(火) 13:33:21.39ID:faPlxNmlM
hogeList.Where(_hoge => _hoge.Flag).GroupBy(_hoge => _hoge.Value)
.OrderByDescending(_group => _group.Key).First()
.Any(_hoge => _hoge.Key == key)

111愛恥人2018/02/06(火) 13:48:39.64
// 指定したキーのデータが最大値を持つか
public bool hasMax(list<Data_hoge> list, int key)
{
// フラグが立っているデータの抽出
var flaggedList = list.Where(data => data.Flag == true);

// リストの最大値
var maxValue = flaggedList.Max(data => data.Value);

// 最大値を持つデータの抽出
var maxDataList = flaggedList.Where(data => data.Value == maxValue);

// 指定されたキーのデータが存在するか
var hasMaxValue = maxDataList.Any(data => data.Key == key);

return hasMaxValue;
}

これは悪いソースですか?それとも普通ですか?

112デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 14:02:52.39ID:vApM+tA70
素晴らしい。よくわかる。良いソースリストの鏡。★★★★。
インデントがついていたらもひとつおまけした。

113デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 14:08:14.50ID:vApM+tA70
★★★★
 var max = hogeList.Max(x => x.Flag ? Value :Int32.MinValue);
  return hogeList.Any(x => x.Fkag && x.Key == key && x.Value == max);

評:素晴らしい。1行目のMinValueの使い方がおもしろい。工夫があってなお且つ分かりやすくシンプル。

114デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 17:02:57.89ID:vApM+tA70
★★★★
return list_hoge.Where(_hoge => _hoge.Flag).GroupBy(_hoge => _hoge.Value)
.OrderByDescending(_group => _group.Key).First()
.Any(_hoge => _hoge.Key == xKey.ToString ());
評:Keyでオーダーしたら絶対に動かないだろ。w と思ったが念のため試してみたら動いた。
 _group.KeyのKeyは実はValueをKeyにしてグループ分けしているのでKeyはHohgeのKeyではなくて
 HogeのValueと同じになる。初心者には難解過ぎるので★一つ減らす。

レーティングスレになってるしw

>>111
ネタの人っぽいけど、それは普通にいろいろ悪いw
一番の害悪はコメント。

116デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 17:51:59.65ID:vApM+tA70
//0〜9までの配列
var array = Enumerable.Range(0, 10).ToArray();

これと同じようにラベルのリストをつくりたいのだが、うまく行かない。どうしたらいい?
こんな感じだとおもうんだが。
List<Label> lblList = Enumerable .Range (0,10).Select (d => new Label (){ Text = d.ToString ()});

117デフォルトの名無しさん (ブーイモ MMcf-+DFt)2018/02/06(火) 18:04:54.61ID:LQXeAkyIM
>>116
お前は一年間Linqを使わないで普通にコード書け
Linq使うと上達から遠ざかる

118デフォルトの名無しさん (ブーイモ MMcf-+DFt)2018/02/06(火) 18:09:27.95ID:LQXeAkyIM
馬鹿な初心者の例

エラー内容を読まない
質問するときも上手くいかないなどあいまいな言葉しか使わない

119デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 18:29:23.79ID:vApM+tA70
>>116
自己解決!!

120デフォルトの名無しさん (ワッチョイ f7f7-NsDz)2018/02/06(火) 19:15:12.35ID:eVD8eHcS0
みなさんありがとうございます
全部参考にさせて頂きます
anyの使い方を知りませんでした
初心者的には>>111が一番わかりやすかったです
私の書いたコードを流用してくれているからだと思いますが
他の例の様にエレガントなコードを書けるように精進します

121デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 20:28:32.37ID:vApM+tA70
private void test3()
{
    List<Label> dev=Enumerable.Range(0, 10).Select(d=>new Label() { Name="Label" + d.ToString() }).ToList();
    List<string> strdt=Enumerable.Range(0, 10).Select(d=>"--" + d.ToString() + "--" ).ToList();

    dev.Zip(strdt, (x, y)=> x.Text=y);
    Debug.Print("--------------------------------");
    foreach (var a in dev)
    {
        Debug.Print(a.Name + ":" + a.Text);
    }
}
これが動かない。同じ単純なアレイどおしなら問題なく動くと思うが、この場合は
色々やってみたがわからない。ZIPの後にForeachをかけるという
意見があったが、どうやって? マージした後にForeachかけるにはベクトルのコレクションを
返す必要がある。その方法が分からない。

122デフォルトの名無しさん (アメ MMfb-xw+F)2018/02/06(火) 20:32:12.84ID:wUppZDmPM
以下のコードを実行すると
array[index]へのアクセスで
out of range exceptionがでます
何故index==numItemsという状態が起こるのでしょうか?


for (var i = 0; i < numItems; i++)
{
task[i] = new Task(() =>
{
var index = i;
foreach ()
{
array[index]にアクセス
}
});
task[i].Start();
while((int)task[i].Status < (int)TaskStatus.Running)
{
Console.WriteLine(i+"\t"+task[i].Status);
}
Console.WriteLine(i + "\t" + task[i].Status);
}

>>121
何がしたいの?
動かないって言われてもエスパーじゃないんで...

っていうか、
>dev.Zip(strdt, (x, y)=> x.Text=y);
ここのラムダ式の戻り値はyになるんだけど、これは意図してるのか勘違いなのか...

125デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 20:57:00.40ID:vApM+tA70
>動かないって言われてもエスパーじゃないんで...

int count = 0;
dev.ForEach(x => x.Text = strdt[count++]);

やりたいのはこれと同じこと。これは動作する。

126デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 21:07:22.14ID:vApM+tA70
>>dev.Zip(strdt, (x, y)=> x.Text=y);
>ここのラムダ式の戻り値はyになるんだけど、これは意図してるのか勘違いなのか...

ここの意図はdevがLabelのコレクションだからxはそのラベルの一個を取り出す。
yはsrtdtがstringコレクションだからyはその一つの要素
x.Text=y
はラベルのテキストにストリングyを代入すること。
ラムダ式の戻り値はyになるんか? でもラベルにyをセットするのが目的だから戻り値は関係ないはず。

var retval = dev.Zip(strdt, (x, y) => x.Text = y);
Debug.Print("--------------------------------" + retval);
foreach (var a in dev)
{
Debug.Print(a.Name + ":" + a.Text);
}
戻り値をretvalに入れてプリントしたらこんなになってる。
--------------------------------System.Linq.Enumerable+<ZipIterator>d__61`3[System.Windows.Forms.Label,System.String,System.String]
Label0:
Label1:
Label2:
Label3:
Label4:
Label5:
Label6:
Label7:
Label8:
Label9:

127デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 21:10:54.60ID:vApM+tA70
--------------------------------
Label0:--0--
Label1:--1--
Label2:--2--
Label3:--3--
Label4:--4--
Label5:--5--
Label6:--6--
Label7:--7--
Label8:--8--
Label9:--9--
これが期待値

128デフォルトの名無しさん (アウアウエー Sadf-VW3n)2018/02/06(火) 21:16:50.87ID:lO9x2Jqya
>>125
だったら最初からこれでいいのでは?知らんけど
List<Label> dev=Enumerable.Range(0, 10).Select(d=>new Label() {Name="Label" + d,Text = String.Format("--{0}--", d)}).ToList();

質問する前にもうちょっと自分で頭使って考えた方がいい気がするw

隔離スレが必要なのでは?

なぜか専用ブラウザから書き込めなかったのでChromeから書き込んだけど、
これだけでワッチョイって変わるんだね知らんかった

ここ数日の流れでわかったと思うけど
自前のアプリが完成するまでずっとこの人は何かコード書くたびに質問してくると思うけど
それでいいのかな?

132デフォルトの名無しさん (ワッチョイ ff9a-wbgk)2018/02/06(火) 21:26:28.75ID:mrlUPoTy0
質問じゃなく承認欲求のための報告
連続してどうでもいいことまで書き込んだり質問する
今までも割といたタイプ

>>128
今は補完文字列が使えるんだったね...
最近コード書いてないからもう忘れてた

134恥人2018/02/06(火) 21:36:56.00
>>115
ネタじゃないです(>_<)
ダメな点を教えてください(>_<)

135デフォルトの名無しさん (ワッチョイ f7e3-uppE)2018/02/06(火) 21:41:08.26ID:xtryCv8p0
>>131
ウザいよね
目的の処理自体は作成できるくせに
聞いてくるなんてキチガイだよね

136デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 21:44:25.92ID:vApM+tA70
>>128
ZIPの理解が目的なんでな。w

>>134
横からだけど
いくつか気になるところがあるけど

とりあえず最後の二つの操作をよ〜く見て動作を考えてみたらいいのでは?

var maxDataList = flaggedList.Where(data => data.Value == maxValue);
var hasMaxValue = maxDataList.Any(data => data.Key == key);

138愛恥人2018/02/06(火) 21:53:01.64
>>121
自分が言ったのはこういうことです(>_<)
匿名クラスを使ってます
var marged = dev.Zip(strdt, (x, y) => {Label=x, Text=y});
marged.ForEach(item => item.Label.Text = item.Text);

>>136
理解が目的なら挙動をテストするコード書けばいい
どこかの記事をコピーして実行
そして徐々に変えていって仕組みを理解したらいい

140愛恥人2018/02/06(火) 21:58:11.36
>>137
意図した動作にならないという意味でしょうか、それともひとまとめにできるという意味でしょうか(>_<)
後者の場合は、一行づつで簡単な意味しか持たないほうが良いと思いすべて分離したのですがまとめまくったほうが良いのでしょうか(>_<)

>>134
ネタにしか思えんけどw

コメントも余分な一時変数も可読性に寄与しないどころか悪くしかしてないと思う。
好みの問題じゃないと思うけどな
こっちの方が読みやすいでしょ
public bool hasMax(list<Data_hoge> list, int key)
{
  var flaggedList = list.Where(data => data.Flag);
  var maxValue = flaggedList.Max(data => data.Value);
  return flaggedList.Any(x => x.Key == key && x.Value == maxValue);
}

142愛恥人2018/02/06(火) 22:13:47.78
>>141
ありがとうございます(>_<)
今後の基準にします(>_<)

>>136
その割にZIPの本来の使い方してないじゃんw
意味が分からないよ

もともと条件がふわっとしてるからまあ適当でいいよ
条件をつめて(keyがユニークなのかなど…)行くと普通こういうコードは書かないと思う

145デフォルトの名無しさん (ワッチョイ 7f7f-qlLX)2018/02/06(火) 22:21:05.28ID:miclds150
>>141
元ネタからそうだけど、メソッドはパスカル記法(先頭大文字)で。

146愛恥人2018/02/06(火) 22:21:37.74
>>144
一行づつで一つの意味しか持たないレベルに分解するのはやりすぎということでしょうか(>_<)
ありがとうございました。

147愛恥人2018/02/06(火) 22:22:53.83
>>145
確かにそうするべきでした(>_<)
ありがとうございます。

>>136
ああついでに言っとくと、あなたはたぶん

(1) 列挙を行うオブジェクトを返すこと
(2) 列挙を行うこと

この二つを混同してるんだろうね。
LINQは前者であって後者じゃないのよ。

149デフォルトの名無しさん (スップ Sd3f-qmJt)2018/02/06(火) 22:26:05.95ID:T+4erG1sd
匿名関数なんてパインソのリスト内包表記とかでイメージつかまないとムズいよ?
それになぜそんなにリンクにこだわるのか
いまの時代にカッコつけてスーツに肩パッドいれてる人みたい
要するにカッコつけかたミスってるよ

>>146
深入りしなくてもいいけど
そのコードともとの2行のコードは結果は同じだけど
ロジックによる動きを追っていくと違いが判ると思う

151デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 22:27:51.04ID:vApM+tA70
>>138
いい線行きました。!!!
  var marged = dev.Zip(strdt, (x, y) => new {lbl = x, txt = y} );
  foreach (var aa in marged ){
    aa.lbl.Text = aa.txt;
  }
これで動作してますが、Foreachはmargedにメソッドがでてこない。

152デフォルトの名無しさん (ワッチョイ 9fd2-uiFW)2018/02/06(火) 22:32:31.84ID:Ss12EoFr0
みんなよく構ってるな

153デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 22:36:21.97ID:vApM+tA70
>>138
できました。解決。ありがとう。

154愛恥人2018/02/06(火) 22:40:30.16
>>149
LINQは手続き型(?)よりも簡単で良いと思っていたのですが勘違いだったのですね(>_<)
参考にします(>_<)

>>150
元の2行のコードというものが分からないです(>_<)
すみません。

>>151
列挙型にForEachがないみたいですね(>_<)
ごめんなさい(>_<)

155デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 22:56:56.00ID:vApM+tA70
>この二つを混同してるんだろうね。
>LINQは前者であって後者じゃないのよ。

折角のアドバイスにきつい言い方と思うかもしれないが、抽象的な説明よりも具体的に説明をすると
初心者には分かりやすい。あなたにも初心者の部下が沢山いるとおもうがそういうことを心掛けた方がいいと思う。
一番具体的なのは正しいコードで示すこと。
二番目はキーとなる概念が入った間違ったコード。(実際には正しいコードを空で書くのは、ベテランでも難しいからね)
3,4,がなくて5が説教。w

156デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 23:11:07.29ID:vApM+tA70
>それになぜそんなにリンクにこだわるのか

リンクに拘ってるのはもちろん初心者に最も理解しやすいからで、Zipにとくに拘ったのは
二つのシーケンスを同時に回せないと、一方でForeachを使いながら、同時にカウンターを
回すという不細工なことになるから。

>>155
なんか楽しい人だなw

158デフォルトの名無しさん (ワッチョイ 1716-uWnk)2018/02/06(火) 23:38:39.75ID:zHDOWiCX0
なんだそのゴミレス...

偉そうだな
わからないのが偉いのかな?
わからないのは自分の責任だと思うが

小学生の頃も学校の先生に文句言ってたんだろ

回答者に対して具体的にコードを書かないといけないと言い出す初心者
モンスター質問者

自分で手を動かして試して考えられないならコードを書く意味なんてない
永遠に誰かに書いてもらえよ
ここでいくらコードを聞いても無駄だな

161デフォルトの名無しさん (ワッチョイ 174b-uWnk)2018/02/06(火) 23:47:34.86ID:mI26xXvn0
必死やな。

162デフォルトの名無しさん (ワッチョイ d7ed-Z3C6)2018/02/07(水) 01:20:10.99ID:7uLVnCRo0
わからないことを知っている

163デフォルトの名無しさん (ワッチョイ f7e3-uppE)2018/02/07(水) 01:30:26.34ID:SevIc5yx0
ごちゃごちゃ言わずにスルースキルを鍛えろよ
最近はLINQコード書いたレスは全部NGブチ込んでる
こいつの質問超つまんないし
だいたい自分で作成できる処理について他人に質問するなんて気持ち悪いよ

164デフォルトの名無しさん (ワッチョイ 178d-uWnk)2018/02/07(水) 01:41:27.68ID:Lh7Y15yl0
オッサンか。

165デフォルトの名無しさん (ワッチョイ b7cc-9ylI)2018/02/07(水) 01:43:34.31ID:LsMjQivz0
いいえjkです

166デフォルトの名無しさん (ワッチョイ ff81-CU+w)2018/02/07(水) 05:11:16.76ID:DwLQBvRd0
早く人間になるか死ね

167122 (アメ MMfb-xw+F)2018/02/07(水) 10:29:05.60ID:2q33vA06M
>>122 ですが自己解決しました。
Parallel.Forにしたら問題なく動きました。

168デフォルトの名無しさん (ブーイモ MMcf-MydX)2018/02/07(水) 12:29:01.11ID:5fPvfxRBM
>>167
.net4止まりの環境か?
なぜasync/await使わないんだ?

169デフォルトの名無しさん (ブーイモ MMcf-UYd6)2018/02/07(水) 12:37:35.45ID:REKIkbBWM
>>168
asyncとParallelは役割が違う
Parallelはデータ並列の同期処理

170デフォルトの名無しさん (スッップ Sdbf-uiFW)2018/02/07(水) 12:43:07.80ID:ewbQvVlTd
>>169
よくコード見てみ

>>170
TaskやめてParallel.Forにするなら意図通りに動作するし別におかしな処理ではないだろ
awaitしたら逐次処理になっちゃうぞ

難を付けるとしたら、arrayの各要素に対する処理を並列化したいんだったらParallel.ForEachの方がいいな

173デフォルトの名無しさん (ワッチョイ 57b3-wbgk)2018/02/07(水) 17:10:10.88ID:IuIKj6k10
SVGを使いたくてNuGetからSVG2.3というのをインストールしたんですが
これってマニュアルみたいなものはないんですか?
とりあえずググってみて簡単な長方形とテキストは表示できたんですが
どうやって覚えたらいいんでしょうか

SVGが使いたいなら普通にSVGを勉強したらいいんじゃないの?

ここでHTMLの書き方について質問されてるのと変わりない

一般論として使い方のわからないライブラリがあるならNuGetに書いてあるオフィシャルサイトに
飛んでそこから調べる

最終更新が3年前とかだったら捨てる

176デフォルトの名無しさん (ワッチョイ bf3b-YYog)2018/02/07(水) 19:06:14.35ID:w9LO8NrH0
Visual Studio Community 2017 を使って
特定のフォルダ「c:\hoge」以下のサブフォルダを列挙する
UWPアプリを作ろうとしています。

IEnumerable<string> subFolders = Directory.EnumerateDirectories(@"c:\hoge", "*", SearchOption.AllDirectories);

foreach (string subFolder in subFolders) {
MessageDialog md = new MessageDialog("");
md.Content = subFolder;
md.ShowAsync();
}

とすると
System.UnauthorizedAccessException:
'Access to the path 'c:\hoge' is denied.'
とのエラーとなります。

しかし、対象フォルダをデバッグビルドされるフォルダ
「C:\foo\bin\x64\Debug\AppX」にすると思った挙動となります。

デバッグビルドされる以外のフォルダにアクセスできるようにするには
どうすればいいでしょうか?
ちなみに Visual Studio を管理者権限で実行しても変わりませんでした。
以上、お知恵をお貸しください。よろしくお願いします。

177デフォルトの名無しさん (ブーイモ MMcf-+DFt)2018/02/07(水) 19:17:14.76ID:wak0MWKrM
>>176
UWPはそういうもん

セキュリティ上ユーザーに許可されない場所は基本的にアクセスできない

178デフォルトの名無しさん (ブーイモ MMcf-+DFt)2018/02/07(水) 19:19:24.20ID:wak0MWKrM
忘れたけどユーザーにフォルダピッカーで選ばせないとアクセスできない

アクセスしたらその情報を保存する方法があって次回からそこは普通にアクセスできるようになる
めんどくさいからUWPやPCLは触りたくない

179デフォルトの名無しさん (ブーイモ MMcf-MydX)2018/02/07(水) 19:25:31.81ID:5fPvfxRBM
>>169
いやいや、taskつかっとるやん!

180デフォルトの名無しさん (ブーイモ MMcf-+DFt)2018/02/07(水) 19:25:52.82ID:wak0MWKrM
初心者はUWPを避けたほうがいいと思う
UWjP自体使われていないからこんな質問が出てくる
これ以外にもめんどくさい仕様がてんこ盛り

ある程度勉強が終わった後改めてUWPやったほうがいいよ

181デフォルトの名無しさん (ブーイモ MMcf-+DFt)2018/02/07(水) 19:29:40.16ID:wak0MWKrM
初心者が上手にアプリの状態を保存したりしつつ画面遷移できるとは思えない

182デフォルトの名無しさん (ワッチョイ bf3b-YYog)2018/02/07(水) 19:43:44.01ID:w9LO8NrH0
>>177,178,180,181
レスありがとうございます!
素直にフォームアプリで挑戦します。

183122 (アメ MMfb-xw+F)2018/02/07(水) 20:06:28.97ID:F0tz6mVZM
>>172
後出しですいませんが
並列化したかった箇所は外部の特殊な装置へのアクセスで並列化した数だけドライバのインスタンス持ってます。
arrayとしましたが、最終的にはconcurrentDictonaryを使い装置からのデータをまとめています。

async await使ったことないのですが、
また調べてみます。 ところでそもそもの質問ですが、
>>122のコードでtask内からループカウンタを参照した時にnumItems以上になるのでしょうか?

184デフォルトの名無しさん (ワッチョイ 57b3-wbgk)2018/02/07(水) 20:14:13.39ID:IuIKj6k10
>>174
スレチだったんですね
ありがとうございました

185デフォルトの名無しさん (ブーイモ MMcf-+DFt)2018/02/07(水) 20:34:01.56ID:wak0MWKrM
UWPの件をひっくり返してみてみると
その他のプラットフォームのアプリは好きなところを読出し放題なんだよ

186恥人2018/02/07(水) 20:49:50.30
スレチ

187デフォルトの名無しさん (スッップ Sdbf-Ismr)2018/02/07(水) 21:17:02.65ID:2uWQJaLvd
>>183
whileのタスクの終了待ち?が機能してない
だからタスクより先にi++が行われる可能性があるのでエラーの現象がでてる
IsCompleteってプロパティがあるからそれを使うといいよ

188デフォルトの名無しさん (スッップ Sdbf-Ismr)2018/02/07(水) 21:23:15.78ID:2uWQJaLvd
そもそも>>122は別スレッドで実行しているだけで非同期実行になってないね
実行するとこんな感じ
https://i.imgur.com/mxuCicn.jpg

既存のXMLを編集したい
編集したタグ以外の要素はテキスト表現を変えたくない

どうしたらいいかな?
コンペア取った時に編集した箇所以外も差分に含まれてしまい困ってる
1回DOMを経由してる以上仕方がないのかもしれないけどなんとかしたい

190デフォルトの名無しさん (ワッチョイ d7ed-Z3C6)2018/02/07(水) 21:41:31.84ID:7uLVnCRo0
>>189
もっと詳しく

191122 (ワッチョイ 97b3-xw+F)2018/02/07(水) 21:42:13.93ID:3m9Z95aP0
>>188
検証ありがとうございます。
各taskがパラレルに実行されてるから期待どおりです。
IsCompleteにすると当然Serialに実行されるのでやりたい事じゃないです

whileは終了まちではなくdebug用途で足しました。

192デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/07(水) 21:42:16.51ID:e8WHE/qt0
それは簡単だよ。編集した箇所いがいは差分にでないコンペアをすればいいだけだ。

193デフォルトの名無しさん (スッップ Sdbf-Ismr)2018/02/07(水) 22:16:31.84ID:o630JNc0d
>>191
そうなのか
それならインデックスの宣言をタスクの外に持ってくだけで希望通りの動作になったのに
パラレルforだと、forのあと重たい処理やってからwaitみたいなことできないから気を付けてな

194122 (ワッチョイ 97b3-xw+F)2018/02/07(水) 22:36:14.66ID:3m9Z95aP0
>>193
あ、確かにtaskの外に置くべきでした。
元はindex = iもなしで直接iを参照してたのでってよく考えると危ないことしてました

195デフォルトの名無しさん (ワッチョイ f7e3-uppE)2018/02/07(水) 23:03:46.15ID:SevIc5yx0
>>189
手で編集すればいいじゃん

196デフォルトの名無しさん (ササクッテロレ Spf1-ST63)2018/02/08(木) 07:40:14.42ID:2nTnRFgHp
いきなり質問失礼します
スクレイピングで取得した要素を
while (true)
{
var B = driver.FindElementByid(''id1").Text;
var S = driver.FindElementByid(''id2").Text;
Console.WritLine("要素Bは{0} 要素Sは{1}", B, S);
}
でコンソールに表示しています
BとSには常時変化する小数点のある数字が入ります。
この後、

if (B > S)

を実行したいのですが、BもSも文字列として認識されている為出来ません。

数字として認識させる為にはどうすればいいですか?

197デフォルトの名無しさん (ワッチョイ 2e80-2I1n)2018/02/08(木) 07:50:14.20ID:31uXy/SD0
「c# 文字列 数値 変換」で検索!

198デフォルトの名無しさん (ワッチョイ e2c3-8zR7)2018/02/08(木) 08:55:18.85ID:pXGBR/IR0
もしかしてバージョン比較だったりしてね。

199デフォルトの名無しさん (ササクッテロレ Spf1-ST63)2018/02/08(木) 10:13:31.71ID:2nTnRFgHp
>>197
変換出来ませんと出て行き詰まってます

>>198
単にどちらが大きいか見て
コンソールに大きい方を表示させたいだけです

200デフォルトの名無しさん (ワッチョイ 59bb-OL3A)2018/02/08(木) 10:19:57.85ID:mIsTyW1Y0
実行すると変換できませんと表示されるコードを貼れ

201デフォルトの名無しさん (ワッチョイ 45be-jA6l)2018/02/08(木) 10:34:17.49ID:IFKOrtko0
MessageBox.Show("変換できません");

202デフォルトの名無しさん (ブーイモ MM62-Frkp)2018/02/08(木) 10:47:13.30ID:CG8jTlJKM
int.parse

203デフォルトの名無しさん (ブーイモ MM62-Frkp)2018/02/08(木) 10:49:23.48ID:CG8jTlJKM
>>196
というか、こんなコードでスクレイピングとかdos攻撃を疑うレベル。
まじて迷惑だからやめて

204デフォルトの名無しさん (ワッチョイ e2c3-8zR7)2018/02/08(木) 11:11:17.51ID:pXGBR/IR0
if ((true == double.TryParse(B, out double valueB)) &&
(true == double.TryParse(S, out double valueS)))
{
// valueB と valueSを比較
}

205デフォルトの名無しさん (オッペケ Srf1-d1eD)2018/02/08(木) 12:20:41.72ID:M09TAhGFr
>>203
ワイはお前の知性を疑っとるで
余計な事言うとすぐばれんねんバカって

206デフォルトの名無しさん (ササクッテロレ Spf1-ST63)2018/02/08(木) 12:40:08.26ID:2nTnRFgHp
>>200
それをする事でどうなりますか?

>>203
始めて1週間なので、
そう思われる理由が分からないので教えてください

>>204
ありがとうございます
試してみます!

207デフォルトの名無しさん (ワッチョイ 59bb-OL3A)2018/02/08(木) 14:11:43.01ID:mIsTyW1Y0
>>206
どういうコードを書いたせいで動かないのかが分かるんだろ
そうでなければお前は何を解決したくて質問したの?

208デフォルトの名無しさん (ワッチョイ e1eb-5/Jh)2018/02/08(木) 15:08:58.18ID:JTkprNeY0
無駄なメモリの確保を防ぎつつ、フィールドのスコープを限定する方法を教えてください

現在、このようなメソッドを用意して秒間300回程度と頻繁に呼び出しています
void A(){
byte[] data = new byte[1024];
//dataに書き込む処理省略
}
しかし、私の行う用途にでは、呼び出しのたびにdataの配列分確保するのは無駄で、前回の使い回しで十分なんです
dataをメソッドの外で宣言しメモリの確保もすればいいのかもしれませんが、スコープが広がってしまいます(すでに書いてしまったコードがdataという名前のフィールドだらけで収拾がつかなくなっています)
何か手軽に無駄なメモリ確保を防ぐ方法は無いのでしょうか?
よろしくお願いします

209デフォルトの名無しさん (ワッチョイ 4de3-60VJ)2018/02/08(木) 15:19:58.53ID:XaQu4uN/0
static

>>208
VBにはインスタンスと同じ寿命でスコープだけメソッドの変数があるけどC#にはありまへん。
意味があると思えんけど、ラムダ式のキャプチャを利用して、byte[]ではなくFunc(byte[]>のフィールドを持つとか。

まあ、そういう馬鹿馬鹿しいこだわりを捨てて、素直にbyte[]のフィールドを持つのが一番でしょう。

211恥人2018/02/08(木) 15:45:33.68
>>196
常時更新ってC#のコードでDOM操作するってこと?

212デフォルトの名無しさん (ブーイモ MM62-sLQd)2018/02/08(木) 16:39:22.84ID:Kmo7gsHqM
>>208
どうせ初心者のうちに書いたコードなんて後で全部捨てて書き直すことになるんだから余計なこと気にしなくてよろしい

213デフォルトの名無しさん (ワッチョイ 2260-wuSi)2018/02/08(木) 16:39:44.59ID:NS8cMe+I0
この間のwin10のアップデートでwebbrowserの挙動に何か変化有りませんでしたか?

214デフォルトの名無しさん (ササクッテロレ Spf1-ST63)2018/02/08(木) 17:48:49.85ID:2nTnRFgHp
>>207
変換出来ませんと表示させるコードを書けば、解決策が見つかると言う意味で解釈したらいいですか?

変換出来ませんと表示させるコードを書く理由が分からないので教えてもらえると助かります。

215恥人2018/02/08(木) 17:50:05.38
ワロタ

216デフォルトの名無しさん (ササクッテロレ Spf1-ST63)2018/02/08(木) 17:53:07.66ID:2nTnRFgHp
>>211
これがDOM操作と言うのか私には分かりませんが、
ウェブサイトに表示されている、リアルタイムで変化している数字を読み取って比較して表示するという操作がしたいって事です

217デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/08(木) 17:57:58.17ID:rH5InDMMM
>>208
そのままでもいいなでは?

一応解決法

外で適当な名前でフィールドを確保
static byte[] buffer= new byte[1024];

中でそれを参照
byte[] data=buffer;

218デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/08(木) 18:07:28.71ID:rH5InDMMM
>>216
そもそも何を使ってスクレイピングしてるかすら書いてないから
みな困惑している

seleniumなんだろうけど

219デフォルトの名無しさん (ササクッテロレ Spf1-ST63)2018/02/08(木) 18:11:56.95ID:2nTnRFgHp
>>218
申し訳ない
seleniumでphantomjs driverです

220デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/08(木) 18:12:19.29ID:rH5InDMMM
仮にの話だけど

自分でリフレッシュ(再送信要求)してないのに値が変わってるなら
サイトがjavascriptで値を書き換えてるんだろうからDoS攻撃にはなってない

221デフォルトの名無しさん (ワッチョイ 4de3-60VJ)2018/02/08(木) 18:29:54.13ID:XaQu4uN/0
>>217
外じゃないと駄目だっけ?
中でよくね?

222デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/08(木) 18:35:48.21ID:rH5InDMMM
cと勘違いしてるだろ

223デフォルトの名無しさん (ワッチョイ 4de3-60VJ)2018/02/08(木) 18:53:26.96ID:XaQu4uN/0
>>222
動作違うのけ?

224デフォルトの名無しさん (ブーイモ MMb6-Frkp)2018/02/08(木) 19:01:05.76ID:K4fxlDLAM
>>205
どう客観的に判断してもおまえの方が頭おかしいだろ

225デフォルトの名無しさん (ブーイモ MMb6-Frkp)2018/02/08(木) 19:02:24.64ID:K4fxlDLAM
>>216
サイバーテロだから基本をマスターするまで止めろ

>>204
ちょっとそれるが
> if ((true == double.TryParse(B, out double valueB))
って書く人がたまにいるけどなんで不要な true == をいちいち書くんだろう?

227デフォルトの名無しさん (ワッチョイ 2e9a-jA6l)2018/02/08(木) 19:10:37.15ID:HksZ1obU0
>>226
説明的コード

228デフォルトの名無しさん (ワッチョイ 99b3-ST63)2018/02/08(木) 19:17:49.11ID:2Quw3/HN0
>>204
これでいけました
ありがとうございます

229デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/08(木) 19:21:39.99ID:rH5InDMMM
>>226
英語に不慣れだからかな…

if(cat.IsAnimal==true)
if(true==cat.IsAnimal)

俺は気持ち悪いのでそういう使い方はしない
がnull許容型だと強制されるので非常に不快

230デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/08(木) 19:28:45.93ID:rH5InDMMM
日本語で見るとbe動詞が不格好だな

は動物プロパティ

if(猫.は動物)
if(田中誠.は動物)

231デフォルトの名無しさん (ワッチョイ ed81-Frkp)2018/02/08(木) 19:56:58.37ID:pB3FNlLq0
>>228
図書館事件よく読んどけ
逮捕されたくなかったらな。

>>226
本当は分かってるんでしょ?w
人が悪いよ

たぶんデリゲートやラムダ式に拒否反応を示す人の思考回路と同じ。
値って考え方が呑み込めてないんだと思う。

233恥人2018/02/08(木) 21:06:28.03
>>230
isって「である」じゃないのけ?

234デフォルトの名無しさん (アウアウカー Sa69-Xwku)2018/02/08(木) 21:07:27.62ID:iBuunKtKa
Is〜もやれやれってため息つくよな

235デフォルトの名無しさん (ワッチョイ c9ed-8zR7)2018/02/08(木) 21:21:20.99ID:915zsRTA0
>>226
ごめんね

>>233
This is a pen.
これはペンである。

うん、間違ってないな w

>>226
設計者が悪い
〜が真の場合〜する
これをコードにするとブーリアンとの比較になる
〜の場合
ならブーリアンとの比較にならない

238デフォルトの名無しさん (ワッチョイ e2c3-8zR7)2018/02/09(金) 08:08:26.68ID:XPAWz2Uc0
わたしのことでけんかしないで
( ;∀;)

239デフォルトの名無しさん (スップ Sdc2-gWXE)2018/02/09(金) 09:40:28.56ID:/RflGba8d
>>226
trueとfalseを=で書く、falseだけ=で書く、falseだけ!で書く
どれでもいいけど!を使いたくないって話はよく聞くな
falseを=で書くならtrueも同じ様に書いた方が見やすいかもね

240デフォルトの名無しさん (ワッチョイ 41ea-g12m)2018/02/09(金) 09:46:12.82ID:XMMaiogJ0
VS2013からVS2017で、
C#のWinForm的には何か大きく変わりましたか?
WPFやUWPやXamarinは使わないです

if(a==true) if(a==false) ははっきり言ってダメなやり方
たとえば b!=’1’の結果としてaがあった場合
aには充分な論理的結果が入っているのに
それを比較してる

つまり
if(b != '1')
bが'1'でないならを
if((b !=' 1') == true)
bが’1'でないが真なら としてる

無駄に条件比較の次元が増えてる

242デフォルトの名無しさん (ワッチョイ e2c3-8zR7)2018/02/09(金) 11:18:11.85ID:XPAWz2Uc0
ってことよ。
言語仕様で保証されてるから

ってもうええやろ

243デフォルトの名無しさん (ブーイモ MM62-sLQd)2018/02/09(金) 12:40:19.33ID:Un6XU7IsM
>>240
はるか昔に開発終わってるから何も変わってないよ
今のVSでアグレッシブに開発進んでるのってプラットフォームでいえばWeb関係でCoreとかAzure、
VS自体の機能でいえばチームコラボレーション系がメイン
もはや昔ながらのクライアントアプリ開発者には何の恩恵もない代物

244デフォルトの名無しさん (ブーイモ MM62-sLQd)2018/02/09(金) 12:55:39.76ID:Un6XU7IsM
あと、日々のマイナーアップデートで平気でC#の言語のバージョンが上がるという、昔のMSからするとありえないことをやってる
プロダクトを自己責任で軽いノリでリリースできるような事業形態の組織なら、
ある日突然新しい構文が使えるようになったりして楽しいからVS2017に移行する価値はあるよw

>>237
それも違うというか、まさにそういう考え方をする人が>>226みたいな書き方をするんだと思うw
ifを○○なら××する、みたいな条件判断だと考えると、○○の箇所に比較演算子を書きたくなっちゃう。
(だからBASIC上がりの人はこういうコードを書きたがる)

逆にifなんて実態は機械語のJZ(Jump if Zero)で、要するに単に値を評価して分岐するだけ、
って考えると>>226みたいな書き方見るとなんじゃこりゃって思っちゃう

最近コードの自動生成をよくする
falseのときは書いて
trueのときは書かないとかやってねぇからtrue==は出る
同じノリだろ

247デフォルトの名無しさん (ワッチョイ 41ea-g12m)2018/02/09(金) 13:59:22.67ID:XMMaiogJ0
>>243-244
なるほど、ただのクライアントアプリだけなら関係ないのですね
新しい構文を勝手に使うとたまに怒られるので、止めておきますw

248デフォルトの名無しさん (ワッチョイ c206-jA6l)2018/02/09(金) 14:30:07.84ID:h6aWYpFC0
bool?使うとtrue==は書かざるをえないんだよね。使いみちは限られるがUWPのx:Bindでbool?使わざるを得なかったりする

249デフォルトの名無しさん (ブーイモ MM85-sLQd)2018/02/09(金) 15:38:49.43ID:BbZWe4RQM
>>248
bool? は if (x ?? false) の方がスマート

>>245
プログラマは考えてはいけない
どんなにおかしなプログラムになっても設計書の通りに書くことが大切
製品の品質より方法論や会社のルールを優先しよう
それがサラリーマンのあるべき姿だよ

251デフォルトの名無しさん (スップ Sdc2-QOWv)2018/02/09(金) 18:19:12.75ID:b+4e2jxgd
サラリーマンプログラマらしいレスなのねん。

252デフォルトの名無しさん (スププ Sd62-8zR7)2018/02/09(金) 20:20:41.17ID:TwVCAmtId
サンデープログラマ

253デフォルトの名無しさん (ワッチョイ ed81-Frkp)2018/02/09(金) 20:39:08.80ID:EQhMg6az0
戦うサンデープログラマーっていうポッドキャストがあってだな

254デフォルトの名無しさん (ワッチョイ c223-g12m)2018/02/09(金) 21:56:26.91ID:I0pHcAAD0
単純にa==trueって書くときa=trueっていうミスしたときに発見難しいけど
true==aって書くようにしてたらtrue=aってミスしてもコンパイル通らないから見つけやすいよねってだけじゃないの?
昔客先常駐でIT土方してた先輩はそう言ってた

255恥人2018/02/09(金) 21:57:48.11
アスペかよ

256デフォルトの名無しさん (ワッチョイ 2ec9-jA6l)2018/02/09(金) 22:22:38.32ID:lhoyckc/0
>>254
今のIDE使っている人達にしてみたら何を言ってるのかわからん言葉だなw

257デフォルトの名無しさん (ワッチョイ 2e81-OL3A)2018/02/09(金) 23:44:22.11ID:Duwvp4uk0
土方の話はいいよ
穴掘って叫んでて

258デフォルトの名無しさん (ワッチョイ 62e0-jA6l)2018/02/10(土) 05:04:14.37ID:aLYixKao0
日経ソフトウェア買ったよ!

259デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 08:55:01.53ID:agf4hW9w0
List<int> idata =new List<int> (){1,2,3,4,5,6};

foreach (var dt in idata)
{
dt = 0;
}
dt=0が代入できない。 idata[0]=0;は代入できる。これはどう考えたらいいんだ?

260デフォルトの名無しさん (ワッチョイ 2ec9-jA6l)2018/02/10(土) 10:13:31.02ID:L0Z1niMi0
>>259
foreachで取ってきた要素はIEnumerator.Currentなので読み取り専用になる

261デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 10:58:14.53ID:agf4hW9w0
しかしLinqのForeachならセットできる。

262デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/10(土) 11:06:54.61ID:h94azKRjM
できたとしてもそもそもdtは値のコピーなのでセットできてもListの値は書き変わらない

263デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 11:08:07.90ID:agf4hW9w0
List<Label> lbl = new List<Label>() { new Label(), new Label ()};
lbl.Add (new Label() );
foreach(var l in lbl) {
l.Text = "aaaa";
}
これはできるけど。

264デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 11:14:08.02ID:agf4hW9w0
List<clsint> idata = new List<clsint>();
foreach (var i in idata)
{
i.val = 123;
} class clsint{ public int val;}
これもできるけど。

265デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/10(土) 11:15:02.53ID:h94azKRjM
dtが値型でも参照型でもコピー

参照型はアドレスがコピーされてるので
参照先のオブジェクトの書き換えが有効

値型は値自身がコピーされているので元の値に影響しない

266デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/10(土) 11:15:51.97ID:h94azKRjM
これは初心者が勉強したら理解できる内容なので
勉強しなさい

267デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/10(土) 11:18:07.39ID:h94azKRjM
初心者脱出がレベル20だとしたら今のforeachの件はレベル5ぐらい

268デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/10(土) 11:19:27.25ID:h94azKRjM
ちゃんとした入門書をちゃんと読んで学習したらレベル10ぐらいは行く

269デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/10(土) 11:22:26.94ID:h94azKRjM
残念だね
ちゃんと本でも読んでコードを書いてたらレベル10に到達するのに
勉強してるつもりになってふらふらしてるからレベル5

270デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 11:42:19.85ID:agf4hW9w0
>foreachで取ってきた要素はIEnumerator.Currentなので読み取り専用になる

参照型もIenumerator.Currentなのか?
なぜ読み取り専用でもライトできるのか?

271デフォルトの名無しさん (ワッチョイ 2e81-OL3A)2018/02/10(土) 11:47:11.44ID:oEqOo86Y0
読み取り専用はフィールドまで伝播しませんので

272デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/10(土) 11:49:38.24ID:h94azKRjM
ここでクダ巻いてないで勉強したらいいのに

自分より出来る人に突っかかってもいいことないのに

273デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 11:53:29.42ID:agf4hW9w0
>>271
なるほど!! 

274デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/10(土) 11:54:13.36ID:h94azKRjM
メソッド内の変数書き換えとかも理解してなさそう

275恥人2018/02/10(土) 12:07:40.93
>>272 >>274
グチグチうるせえな

276デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/10(土) 12:14:30.61ID:h94azKRjM
わかった
ぐちぐちはやめよう

>>263
>>264
この2つともListの中身は変わっていないと言うことはわかるかな?

277デフォルトの名無しさん (ワッチョイ 3151-xK0a)2018/02/10(土) 12:29:08.56ID:PglyRkoG0
読み取り専用の参照型の変数は参照は書き換えられないが、その参照を得ればそれが指し示す実体を読み書きできる

278デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/10(土) 12:35:19.58ID:h94azKRjM
Listは中に追加された値を保存してる

intとかの値型はその値自身を持ってる
クラスとかの参照型は対象になるクラスへの参照が入ってる

そのListの中にある参照先自体は変わってない

>>273
残念だけどその内容になるほどというとドツボにはまる
classじゃなくてstructにするとフィールドまで書き換えできないと気づく

フィールドに波及しないと言うのは誤った理解

279デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/10(土) 12:41:02.28ID:h94azKRjM
こんなところで怪しい回答に頼るより
しっかりした実績のある入門書に頼ったほうがいいよ

マジで

誰だってその時々で間違うし

本の時代は終わったなんていう奴がいるけど
webだけじゃ網羅的に勉強しづらい

280デフォルトの名無しさん (ワッチョイ 317e-OL3A)2018/02/10(土) 12:41:58.21ID:7Yj567YX0
いいじゃん誤った理解で
馬鹿は痛い目みないと治らないから
ぜひ痛い目みて貰おうぜ

281デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 13:07:19.11ID:agf4hW9w0
foreach (var dt in idata)
{
dt = dt < min ? min : max < dt ? max : dt;
}
みたいなことができない。これはよくあるケースなので不便。

282デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 13:11:16.15ID:agf4hW9w0
>しっかりした実績のある入門書に頼ったほうがいいよ

最近2冊ほど読んだけど、細かいところはやってみないとわからないよ。読んだだけでは無理。
なれが必要だ。で慣れるためにコードを書く。しかしサッパリ動かない。w

283デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 13:15:58.33ID:agf4hW9w0
//パラメータをシングルトンで持たせたいのだが、Jsonで格納しようとするとstaticにできない。なので
referenceを返したいのだが、何かいい方法はない?

class Singleton
{
private Singleton(){}
public static Singleton getInstace() {
return SingletonHolder.INSTANCE;
}
private static class SingletonHolder {
public static Singleton INSTANCE = new Singleton();
}

たとえば教科書にあるシングルトン。これに
class clsGrovalParam
{
public int value1;
public int value2;
public int value3;
}
public clsGrovalParam Param;
とやってParamを追加していたが、なんか動作がおかしい。W
と思ったらPublicにしていたので直接Paramを生成していてシングルトンになってなかった。

 .Param
こいつをStaticにできればいいのだが、Jsonで格納するときにスタティックにすると格納できない。

284デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/10(土) 13:27:26.20ID:h94azKRjM
また伝わらない書き方だなあ
Jsonとはなんなのか?stringなのか?typeだとしてどのJsonなのか?

285デフォルトの名無しさん (ブーイモ MMb6-sLQd)2018/02/10(土) 13:30:10.75ID:S1subAI+M
>>283
そのレベルのことは一通り基礎を終えれば分かるから、今はソースに直にstaticで書いとけ
言っちゃ悪いけど、まだ設定の外部化なんか考えるようなレベルじゃない
シングルトンも忘れていい

286デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/10(土) 13:32:00.29ID:h94azKRjM
参照型と値型を区別できないと普通に困るよ
そのたびにここで質問するの?

俺はc#の仕様が面白かったので入門書みたいのを10回以上読んだ
delegateとかeventとか他にはなかったから刺激的だった

287デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 13:37:02.28ID:agf4hW9w0
>シングルトンも忘れていい

グローバル変数を散らばらせるとなかなか大変になるので、ここは最初に抑えること。
別にシングルトンでなくてもいいが、、スタチックはJson.netに保存できないので仕方なしに
調べていたらシングルトン。ほんまにトンだよな。たったこれだけのことに頭を
悩ませないといかんとは。

288デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/10(土) 13:38:27.41ID:h94azKRjM
>>287
君は5かける3はと言われて
1から順に数字を答えてる状態にしか見えないんだけど

289デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 13:40:22.73ID:agf4hW9w0
>参照型と値型を区別できないと普通に困るよ そのたびにここで質問するの?

いままさにこれに困っている。そこでプロパティにしたらどうなの?って実験してみようと思っている。
private clsGrovalParam _Param = new clsGrovalParam() {value1 = 1};

public clsGrovalParam Param
{
get { return _Param; }
set { Param =_Param ;}
}

290デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 13:41:47.03ID:agf4hW9w0
>>288
最初はそうでしょ。だれでも

291デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/10(土) 13:43:20.18ID:h94azKRjM
>>290
違うよ

九九の5X3を覚える

君にはそれがない

292デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/10(土) 13:48:03.17ID:h94azKRjM
5を3回足すとか3を5回たすとか考えたり
5X3を覚えるとかがない

1から数え上げていって9当たりで疲れて質問に来る

293デフォルトの名無しさん (ワッチョイ e5cc-kudU)2018/02/10(土) 13:48:40.57ID:STtvgiYf0
算数スレ

>>287
>グローバル変数を散らばらせるとなかなか大変になるので、ここは最初に抑えること
それはそもそもグローバル変数が多いこと自体が問題。
まともな設計が身に着けば自然に減る。
シングルトンは基本的にアンチパターンであり、初心者が積極的に使うものではない。

295デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 13:55:47.90ID:agf4hW9w0
>291
だめだよ。そういう覚え方は。最初は足と手の指を使って15までカウントする。

296294 (アウアウウー Saa5-sLQd)2018/02/10(土) 13:56:15.28ID:2bX56Vysa
初心者には紛らわしい物言いだったので補足
シングルトンはメンバも含めて実質すべてグローバル変数な

297デフォルトの名無しさん (ワッチョイ 3102-OL3A)2018/02/10(土) 14:03:56.78ID:8juYsZ8V0
休みの昼間っから真っ赤にしてる奴にろくなのはいない

やりたいことと実力のレベルに差があって
ちぐはぐしてるのは間違いない

例え15まで数えて正解しても次にはつながらないので
仕組みを理解してからのほうが良いのでは?

仕組みが理解できない場合いくら手を動かしても得られるものはないんでは?

300デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/10(土) 14:09:29.78ID:h94azKRjM
>>295
頑張ってpiの再発見でもしたらいい

301デフォルトの名無しさん (ワッチョイ c2d2-TO1f)2018/02/10(土) 14:11:45.16ID:HkD8Ulqu0
初心者はなんでも場当たり的に解決しようとするが、これは意識しないと気が付かない悪い癖

仕組みを理解するために手を動かすのは正しい

仕組みを理解せずその場の答えを出すためにやみくもに手を動かすのは正しくない

303デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 14:16:21.43ID:agf4hW9w0
>295
細部はあまり関係ないと思う。
 ベテランはそういう細部をきにするが、要するにシングルトンで何をしたいのか? 
どう機能するものなのか?
それが大事なポイントじゃあるまいか。 名前の問題とか実装方法の問題じゃない。
別にシングルトンでなくてもいい。

ポイントはつまりアンチスパゲッティ。w

変数1,2、−−−100位は直ぐに散らばる。
これをまとめて一つにしておけば分かりやすい。まあ名前をまとめたところで参照は100か所に
なるから、どうしたって散らばるが、変更箇所は1か所にすることができる。それに括りの名前を付けて
おけばGrepできる。そういうメリットがある。ただそれだけのことだ。でもこれが大きい。

304デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 14:20:22.95ID:agf4hW9w0
要するにインスタンスを一個しか持たないクラスにまとめたグローバル変数。

その割に実現がややこしい。w

305デフォルトの名無しさん (ワッチョイ e5cc-kudU)2018/02/10(土) 14:23:51.65ID:STtvgiYf0
この話いつまで続くの?

306デフォルトの名無しさん (ワッチョイ c2d2-dBQf)2018/02/10(土) 14:50:46.07ID:xv5r03JM0
>>305
NG使えば一瞬で

307デフォルトの名無しさん (ワッチョイ 4de3-60VJ)2018/02/10(土) 15:34:01.81ID:WFVVWPNp0
設定データをシングルトンでって時点で何かがおかしい

308デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 16:43:32.86ID:agf4hW9w0
class Singleton
{
private Singleton(){}

public static Singleton getInstace() {
return SingletonHolder.INSTANCE;
}
private static class SingletonHolder {
public static Singleton INSTANCE = new Singleton();
}
private clsGrovalParam _Param = new clsGrovalParam() {value1 = 1};
public clsGrovalParam Param
{
get { return _Param; }
set { Param =_Param ;}
}
}
class clsGrovalParam
{
public int value1;
public int value2;
public int value3;
}
このシングルトンは駄目だな。Getinstanceするたびに_Paramがnewされる。_Paramがシングルトンにならんだろ。w
ParamをStaticにしないでシングルトンを作るにはどうしたらいいんだ?

309デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 16:45:37.25ID:agf4hW9w0
>設定データをシングルトンでって時点で何かがおかしい
アプリで共通に使うパラメータはシングルトンにする。
のがいいと思うのですが、、、、w

310デフォルトの名無しさん (ブーイモ MM62-sLQd)2018/02/10(土) 16:52:28.02ID:eFhUfahpM
>>309
単体テストが困難になるから避ける
大元のインスタンスはstaticでグローバルに共有してもいいけど、
そのグローバル変数に直接アクセスするのは最小限にしてコンストラクタなどで必要なものだけ受け取るようにするのが基本だよ

311デフォルトの名無しさん (スッップ Sd62-dBQf)2018/02/10(土) 16:55:21.75ID:wVMdjZ3id
>>282
しっかりした入門書なら決して「読んだだけ」になることはない

>>309
スレの流れを把握してないのでひょっとしたら話が噛み合ってないかもしれないけど、
そういうのは、例えばVSが吐き出すプロジェクトのスケルトンで言ったらProgramみたいな
クラスのstataicメンバーとして持てばいいだけの話で、むしろシングルトンで実装する必然性が分からない

313デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 17:15:55.14ID:agf4hW9w0
Staticで持つとJson.Netが保存を拒否する。

314デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 17:17:35.19ID:agf4hW9w0
string json = JsonConvert.SerializeObject(Param);
こんなの。

315デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 17:18:43.93ID:agf4hW9w0
Staticでもってコピーすりゃいいだけか? そうだよな。w

316デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 17:24:59.76ID:agf4hW9w0
あれっ、保存できた。しかしスタディックにしても値が初期化されてしまう。
なんか別のインスタンスを作ってる。

なんかstaticメンバーとstaticクラスの区別が付いてない予感...

318デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 17:43:18.71ID:agf4hW9w0
原因が分かった。
InitializeCompornent();がLoacalエリアをクリアしてる。
そんな馬鹿な。
Local変数でParamを宣言したときに
clsParam Param = clsParam.GetInstance ().Param ;
で値を代入してるのに。
コンストラクタのInitializeCompornent();がこのLoacalエリアをクリアしてる。そういうものか?

319デフォルトの名無しさん (ワッチョイ e5f2-jA6l)2018/02/10(土) 17:47:47.83ID:14GiOIOi0
Localエリアって何だ?

320デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 17:52:03.67ID:agf4hW9w0
ごめん。ローカル変数。

321デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 17:54:10.49ID:agf4hW9w0
でもやっぱり違う。ローカルを宣言して同時にGetInstanceで設定したら、その値が
入っている。 OK
次にInitializeCompornent();を実行する。
その次にもう一度このローカル変数にGetInstance()で代入したらクリアされてる。
おかしい。w

322デフォルトの名無しさん (ワッチョイ 2e9a-jA6l)2018/02/10(土) 17:57:57.91ID:rd7v/Ruq0
このスレは勉強のために見ているけどID:agf4hW9w0は初心者に害悪でしかないな

あ、この人数日前からしょうもない質問したり逆ギレしたりしてるお人かなw

正義(笑)をかさに着て人を追い出すようなことを言うのは好きじゃないけど、
それでも実況みたいなレスは自分で専用スレ立ててやった方がいいんじゃないの?

324デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 18:07:33.04ID:agf4hW9w0
Gofとか興味ないの? デザインパターンの大先生だよ。それが全然動かない。w
たいそうな本出してる割には、、、、、とちょっと不信感が沸いてる。

325デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 18:10:31.89ID:agf4hW9w0
思うにカッコつけた本でも具体例が提示できないとだめだな。
抽象的な説明はカッコいいが、具体的なサンプルで動かないとカッコばかりで駄目だな。

326デフォルトの名無しさん (ワッチョイ 9d17-jA6l)2018/02/10(土) 18:18:38.37ID:zPhvoOhZ0
ここ2週間くらい変なのが住み着いているの最悪だろ

327恥人2018/02/10(土) 18:19:18.91
言うほど気になるか?

328デフォルトの名無しさん (ワッチョイ 9d17-jA6l)2018/02/10(土) 18:24:02.09ID:zPhvoOhZ0
そうだなお前も含めて気になるよ

お前掛け算知らないの?と変わらないレスを書いて平気なんだな
いくら初心者の発言だとしてもしらける

330デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 19:19:01.09ID:agf4hW9w0
>>312
>クラスのstataicメンバーとして持てばいいだけの話で、むしろシングルトンで実装する必然性が分からない
Programの中に
static ublic int Aaaa;
って入れると このFieldにAaaaは割り当てられません。つにに規定値0を使用します。ってでるんだが、

331デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/10(土) 19:39:15.98ID:agf4hW9w0
シングルトンやっと動いた。w

Programの中に書くってのもOKだな。Fieldワーニングがでるが。

332デフォルトの名無しさん (ワッチョイ c29f-IOan)2018/02/11(日) 12:07:23.85ID:OiJFvi0/0
イベントとデリゲートの違いがわかりません
イベントを使わなくてもデリゲートでproperty changedが実装できました
両者の違いを教えて下さい

デリゲートは特定のかたちの関数をいれれる変数

イベントはデリゲートを利用して登録した関数を実行できる仕組み

334デフォルトの名無しさん (ブーイモ MM85-sLQd)2018/02/11(日) 13:06:10.79ID:v1VeVCTSM
>>332
イベントはメンバの一種、デリゲートは型の一種。
C#ではメソッドはオブジェクトではない。それを値として受け渡しするために、メソッドをオブジェクトとして包むための型がデリゲート。
イベントは、イベントに対してデリゲートを登録&削除するという一般的なパターンを簡単にかつ利用者に分かりやすく実装するための特殊なメンバ。
プロパティに相当する。実際、イベントの登録削除はプロパティのように独自に実装することもできる。
興味があるならイベントアクセサでググってみるといいよ。イベントを自分で実装してみれば完全に理解できるはず。

335デフォルトの名無しさん (ワッチョイ c9ed-8zR7)2018/02/11(日) 14:10:21.78ID:TT4/yggk0
デリゲートは変数なのか?

336デフォルトの名無しさん (ワッチョイ ed81-Frkp)2018/02/11(日) 15:19:36.02ID:jKl1uVTt0
メソッドの引数に1000以上の要素を持ったリストを渡す場合、メモリの消費等考慮するとやはり参照渡しが良いでしょうか?

337デフォルトの名無しさん (ワッチョイ 2e81-OL3A)2018/02/11(日) 15:27:05.48ID:MHMFdyK60
出た「参照渡し」
誤解している臭いがプンプンする

338デフォルトの名無しさん (ワッチョイ e5cc-kudU)2018/02/11(日) 15:29:24.34ID:b8HFi7Nc0
リスト自体が参照なので、リストのアドレスをコピーするコストしか発生しないのでは?

自信はないので詳しい人教えてくだちい。

339デフォルトの名無しさん (ワッチョイ 2e81-OL3A)2018/02/11(日) 15:29:47.87ID:MHMFdyK60
面倒くさいから解説しないが
List<T>をそのまま渡そうがrefで渡そうがほとんど何も変わらん

340デフォルトの名無しさん (ワッチョイ 2e9a-jA6l)2018/02/11(日) 15:30:32.22ID:cPKTA0XS0
>>336
配列やリストは渡した先でインスタンスを書き換えない(nullにしたりしない)場合はref付けずにそのまま渡せ
コピーして渡すわけじゃないから

341デフォルトの名無しさん (ワッチョイ 2ec9-jA6l)2018/02/11(日) 15:32:27.75ID:a0wWm6rj0
>>336
これ言葉遊びになりがちなんだよな
「値型の値渡し」、「値型の参照渡し」、「参照型の値渡し」、「参照型の参照渡し」をまとめて値渡しと参照渡しと呼ぶのが元凶なんだろうけどさ
http://ufcpp.net/study/csharp/sp_ref.html

342デフォルトの名無しさん (ワッチョイ c29f-IOan)2018/02/11(日) 16:15:49.09ID:OiJFvi0/0
>>334
adderとremoverというのがあって、+=で繋いだときはadderが呼ばれ、-=で削除したときはremoverが呼ばれるんですね
ここが単なるデリゲートのマルチキャストとと違うところだと思いました
どうもありがとうございました

>>342
っていうか、コールバックを実現したいからと単純にデリゲート変数をそのまま公開すると、

(1) 外部からnullを代入できてしまう
(2) 外部からInvokeできてしまう

こういった問題がある。
だからデリゲート変数とは別のイベントに存在意義があるんでしょう

344デフォルトの名無しさん (ワッチョイ edbb-jA6l)2018/02/11(日) 16:44:55.18ID:zggVxteM0
C# WPF
xaml上にキャンバス配置、その子にImageがあって、
このImageをタイマーで左に動かしたいのですが、Imageの座標の動かし方が分からないです。

Canvas.Letfや、Image.Leftと打っても「現在のコンテキストが存在しない」とエラーが返ってきます。

345デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/11(日) 16:51:35.15ID:cqxb7NMTM
Blendでプロジェクト開いてストーリーボード追加して
ドラッグして終わり

という方法は一般的でないけど楽

346デフォルトの名無しさん (ワッチョイ ed81-Frkp)2018/02/11(日) 17:01:20.38ID:jKl1uVTt0
>>338-341
ありがとうございます

347デフォルトの名無しさん (ワッチョイ edbb-jA6l)2018/02/11(日) 17:04:07.30ID:zggVxteM0
ストーリーボードは使わず、タイマー+csのコードで出来る方法をお願いします。

image.Width ←OK
image.Height ←OK
image.Left ← 出来ない
image.Top ← 出来ない

canvasの子としてimageがあるから出来ないのかなとは思うのですが、
canvas.Left ←出来ない
canvas.Top ←出来ない

も出来ないからお手上げです。時間経過ごとに少しづつ画像を動かしたいだけなんですが・・・

348デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/11(日) 17:12:32.26ID:cqxb7NMTM
Canvas.SetLeft

349デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/11(日) 17:14:45.66ID:cqxb7NMTM
実際のimageにはLeftとかは存在しないので
別の場所で辞書のようなもので保存してる

それが添付プロパティ

350デフォルトの名無しさん (ワッチョイ edbb-jA6l)2018/02/11(日) 17:19:28.14ID:zggVxteM0
setleftも試してて何でだろうと思ったら、usingでsystem.windows.controlを設定していませんでした。
ありがとうございます。
添付プロパティというのも初耳なので勉強します。

351デフォルトの名無しさん (ワッチョイ 99b3-jA6l)2018/02/11(日) 18:04:06.76ID:eSM+gwdh0
大学のプログラミングの課題を家でもできるようにしたいです
大学ではemacsでcファイルを作りコンパイラー(名称不明)にかけてgnuplot上でプログラムを実行してます
↑をできるような環境を自分のノートPCに作るために何をインストールすれば足りるでしょうか?
使用PCは富士通LIFEBOOK、OSはwindows10です

352デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/11(日) 18:07:07.71ID:cqxb7NMTM
>>351
ここはc#のスレであってcのスレじゃない
スレチ

まあ一番簡単なのはUSB起動のlinux使うか
virtualboxにlinuix入れることかな

353デフォルトの名無しさん (ワッチョイ e175-xK0a)2018/02/11(日) 18:07:22.85ID:/hLQhQLG0
C言語とC#は別だぞ〜

354デフォルトの名無しさん (ワッチョイ 2e9a-jA6l)2018/02/11(日) 18:07:58.00ID:cPKTA0XS0
>>351
ここはC#のスレでCとC#は別物
【初心者歓迎】C/C++室 Ver.102【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1509780815/

355デフォルトの名無しさん (ワッチョイ 99b3-jA6l)2018/02/11(日) 18:08:12.83ID:eSM+gwdh0
すみません、どうやらC言語とC♯、C++の区別もついてないみたいです…

356デフォルトの名無しさん (ワッチョイ 99b3-jA6l)2018/02/11(日) 18:08:48.25ID:eSM+gwdh0
誘導ありがとうございます、行ってみます

357デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/11(日) 18:12:55.04ID:cqxb7NMTM
向こうに行ってcygwinやMinGWやMSYSやBOW入れろとか言われてたら笑う

358デフォルトの名無しさん (ワッチョイ e175-xK0a)2018/02/11(日) 18:15:47.59ID:/hLQhQLG0
linuxにこだわるおまえに笑う

359デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/11(日) 18:18:09.04ID:cqxb7NMTM
EmacsとGCCやGnuplot入れる前提でわざわざ変な環境使う意味がわからない

360デフォルトの名無しさん (ワッチョイ e175-xK0a)2018/02/11(日) 18:21:30.65ID:/hLQhQLG0
emacsにこだわるおまえに笑う

361デフォルトの名無しさん (ワッチョイ 2e9a-jA6l)2018/02/11(日) 18:23:37.00ID:cPKTA0XS0
>テンプレが読めない回答者、議論をしたいだけの人は邪魔
>C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

362デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/11(日) 18:24:17.18ID:cqxb7NMTM
文字よめないんか?

363デフォルトの名無しさん (ワッチョイ e175-xK0a)2018/02/11(日) 18:26:07.33ID:/hLQhQLG0
どう見てもこのシチュエーションでecmasは重要じゃないということが分からないおまえに笑う

364デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/11(日) 18:27:35.09ID:cqxb7NMTM
学校の環境がemacsなんだろ
マクロ使ってたら他じゃ実行できないじゃん

365デフォルトの名無しさん (ワッチョイ e175-xK0a)2018/02/11(日) 18:29:45.08ID:/hLQhQLG0
コマンドでやればいいだけだろ(笑)
わざわざlinux入れる労力 w

366デフォルトの名無しさん (ワッチョイ c9ed-8zR7)2018/02/11(日) 18:32:58.32ID:TT4/yggk0
Linux側で仕事してるヤツ、羽振りはいいけどいつもイライラしてるね

367デフォルトの名無しさん (スップ Sdc2-dBQf)2018/02/11(日) 18:43:35.08ID:NBX6x1Ctd
Emacs使いたがるやつは医者に診てもらえっていってたのはStackOverflowの中の人だっけ

学生は講義毎に環境が違うから面倒くさいよな

369デフォルトの名無しさん (スップ Sdc2-dBQf)2018/02/11(日) 18:48:12.99ID:NBX6x1Ctd

370恥人2018/02/11(日) 18:50:27.31
うげぇ
英語ばっかで読む気失せる

371デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/11(日) 18:50:47.92ID:cqxb7NMTM
誰だって今だったらemacs何か使うなよって思うわ
vscodeとか使ったほうがいい
でもそれが条件なんだから仕方がない

winsowsにcygwinやMinGWやMSYS入れるのは環境が汚れるだけ
git for winとバッティングするし

372デフォルトの名無しさん (ワッチョイ 2260-nHV3)2018/02/11(日) 19:09:21.72ID:bT0HWvJB0
>>371
path を適当に走査するだけで、なんとでもなるのでは?

373デフォルトの名無しさん (スップ Sdc2-dBQf)2018/02/11(日) 19:09:40.61ID:NBX6x1Ctd
>>370
この人、twitterでもMicrosoftの中の人たちにしょっちゅう議論ふっかけてておもろいよ

374デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/12(月) 07:43:05.41ID:z/E2YHwX0
1) StudentName student1 = new StudentName("Craig", "Playstead");

2) StudentName student2 = new StudentName
{
FirstName = "Craig",
LastName = "Playstead",
};
1)、2)初期化方法だけど、これってどっちもインスタンスを二つ作ってるよな。
上の方はstudent1というインスタンスを作ってさらにnewでインスタンスを作ってコピーしてる。
C#って初期化するのにインスタンスをわざわざ余分に作らないと初期化できないわけ?
無駄って感じがするが、、

>>374
まずは入門書を一通り終えよう
話はそれからだ

376デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/12(月) 08:07:58.06ID:z/E2YHwX0
class Program
{
static void Main(string[] args)
{
Person p1, p2;
p1 = new Person(); // 引数なしのコンストラクタ
p2 = new Person("太田隆", 29); // 引数ありのコンストラクタ
p1.Name = "斉藤花子";
p1.Age = 18;
p1.showDatas();
p2.showDatas();
}
}
こういう例でもさ、p1,p2って最初は空っぽでNew Person()で初めて実のあるものを作って渡すのかと思っていたら
P1、P1を宣言したときから実がはいってる。つまり実体ができている。それでnewでまた実を再度作って、代入してるんだね。
だとするとこのプログラムは酷い例だよな。p1.Name = "斉藤花子";をするためには p1 = new Person();これは意味がない。
Person p1;で既にコンストラクタは実行されてるんだろ。なんでp1=new Person();なんてやるんだよw

377デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/12(月) 08:12:23.91ID:z/E2YHwX0
>まずは入門書を一通り終えよう 話はそれからだ
 
間違いだらけの入門書。w
376をみてみなよ。

378デフォルトの名無しさん (ワッチョイ 4d06-nHV3)2018/02/12(月) 08:16:29.77ID:cgPx9lSf0
>>376
変数とnewで両方という意味ならインスタンスは片方でしか作っていない
参照型(クラス)の変数は実質ポインタなのでnewで作られた実体への参照が入る
値型(構造体)は変数を実体として(アドレスが参照され)newでコンストラクタを呼び出す
変数宣言だけでは参照型はnullだし、値型は領域確保だけでコンストラクタは呼び出されていない

379デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/12(月) 08:21:04.33ID:z/E2YHwX0
そんなことはないよ。
クラスPersonにpublic static int id =0;をいれて
Person(){ ++id;} のようにコンストラクタでインスタンス生成ごとにidをインクリメント
してみたら見事に2つインクリントしてる。だから君も勘ちがいしてる。

380デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/12(月) 08:32:41.72ID:z/E2YHwX0
ん? 俺の勘ちがいが勘ちがいだったのか?

偉そうな馬鹿だな

しっかりとした入門書をよめばいいのに

383デフォルトの名無しさん (ワッチョイ 4de3-60VJ)2018/02/12(月) 08:48:25.35ID:F98UmXeX0
MSDNへのリンクでも貼ってやれよ

それとも入門書には書いてあるけど読めてないだけか?

385デフォルトの名無しさん (ワッチョイ 4de3-60VJ)2018/02/12(月) 08:52:33.51ID:F98UmXeX0
msdnじゃないけど
ぐぐったら出てきた

http://www.atmarkit.co.jp/ait/spv/0209/04/news001.html

386デフォルトの名無しさん (ワッチョイ edd3-jA6l)2018/02/12(月) 08:53:19.49ID:kFYq0atR0
なんだ今日もバカの日記帳か?

変数宣言の時点で中身があるなら値型である
しかし値型なら引数無しコンストラクタは定義できない

そもそも日記帳の中身が破綻しとるw

387デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/12(月) 08:58:38.18ID:z/E2YHwX0
>>378
public class Person
{
public static int id = 0;
public string name;
public int age;
public Person() { ++id; name = "non"; age = 100; Debug.Print("PersonIdcount =" + id.ToString()); }
}

Person aaa;
Person bbb = new Person ();
Person ccc = new Person {name = "bbb",age = 25};

めんごーー、いま確認してみたらインスタンスはこれで2つしかできてない。先生がただしい。入門書はまあ正しかった。w

>>387
お前は入門書を映像として見てはいるけど
内容は理解してないんだよ

だから毎日トンチンカンな内容なレスをしてる

何度でも読み返して理解してから来いよ

389デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/12(月) 09:27:01.70ID:z/E2YHwX0
ん? 387のどこが頓珍漢なのだ? 君の説明よりもかなり説得力があると思うが、、、
というのもインスタンスが生成され、その個数をカウントして実際に確認できている。
そういう厳然とした証拠が添付されている。
しかも実際に実行できるコードが添付されている。w

言われてることも理解できないんだよなあ…

>>389
その前にお前は何歳なんだ?
昭和の香りのする口ぶりや全角数字句読点からしたら55〜65歳ぐらいだな
でも言ってることは小学生レベル

392デフォルトの名無しさん (ワッチョイ e2c3-8zR7)2018/02/12(月) 09:49:15.19ID:fQpoXnex0
すべて自演の書き込みだったりして

393デフォルトの名無しさん (ワッチョイ 2ec9-jA6l)2018/02/12(月) 10:06:43.72ID:f+qeQBRN0
>>392
固定回線と携帯回線だしその線は高そう

394デフォルトの名無しさん (ワッチョイ c206-jA6l)2018/02/12(月) 10:08:20.29ID:p1yPqW7I0
まあ普通の人はデフォルト動作など信頼せずに組むのがお薦めだね
勘違いでエライ目に逢う

395デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/12(月) 11:23:46.31ID:1LSHehibM
c#8.0になったら超大型破壊的変更がくるけどどうすんのかね

影響はこれまでのほぼ全てのソースに及ぶ

396デフォルトの名無しさん (ワッチョイ c2d2-dBQf)2018/02/12(月) 11:28:08.65ID:GfEZnF0r0
>>395
null非許容参照型のことを言ってるんなら、それは的外れ

397デフォルトの名無しさん (ワッチョイ ddc3-saCW)2018/02/12(月) 11:31:49.01ID:sATukCOa0
C#っていうのはC言語に何らかの拡張を加えた言語って認識であってる?

398デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/12(月) 11:33:23.17ID:1LSHehibM
>>396
これまでのソースに手作業で!をつけまくらないといけないんだけど

399デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/12(月) 11:34:05.89ID:1LSHehibM
>>397
違う
どちらかというとjavaに近い

400デフォルトの名無しさん (ワッチョイ c2d2-dBQf)2018/02/12(月) 11:42:08.05ID:GfEZnF0r0
>>398
少しはググれ

401デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/12(月) 11:44:44.55ID:1LSHehibM
実際に実行環境をいれたのか?
俺は入れたぞ?

わからないからと言ってググれでごまかすのはどうかと

402デフォルトの名無しさん (ワッチョイ c2d2-dBQf)2018/02/12(月) 11:49:19.25ID:GfEZnF0r0
Null非許容型を前提としたものかどうかAssembly単位でも設定できる
てかそこまでしてなぜ気づかない…

403デフォルトの名無しさん (ブーイモ MM6d-nHV3)2018/02/12(月) 11:53:52.27ID:1LSHehibM
普通は逆にするけどね
新しい機能は囲い込んで既存のものはそのままでも問題ないようにする
ところが普及しきった段階で破壊的変更を入れてくる

404デフォルトの名無しさん (ワッチョイ 2ee8-jA6l)2018/02/12(月) 11:59:07.50ID:1msBxh9/0
じゃあもうやめたらいいんじゃないかな、C#使うの

405デフォルトの名無しさん (ワッチョイ c2d2-dBQf)2018/02/12(月) 11:59:21.31ID:GfEZnF0r0

406デフォルトの名無しさん (スッップ Sd62-tUja)2018/02/12(月) 12:01:32.14ID:VyGKD4Czd
議論はこちらへ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/

407デフォルトの名無しさん (スップ Sd62-dBQf)2018/02/12(月) 12:04:27.54ID:N6F2lE5bd
>>401
大方どっかのチュートリアル通りの手順を踏んだだけで、現在のproposalなんか確認してないんだろうな
そんなん猿でもできるわ

408デフォルトの名無しさん (ワッチョイ 2e81-OL3A)2018/02/12(月) 12:15:49.51ID:mwueXHhJ0
>>380
生まれてきたのが間違い

素朴な疑問だがnull非許容参照型はGC送りはどうやるんだ?
変換構文などがあってnull代入できるのか?

410デフォルトの名無しさん (スップ Sd62-dBQf)2018/02/12(月) 15:28:58.13ID:V1lBSRUOd
>>409
GC送り?オレオレ用語は定義と併せて書いてくれ

null非許容参照型の参照を外してガベコレの対象にするにはどうするんだ?

従来だと a=null;などで解放してたものだが

412デフォルトの名無しさん (ワッチョイ e175-jzYt)2018/02/12(月) 15:49:47.24ID:+qsRixLI0
値型は?

413デフォルトの名無しさん (ワッチョイ c2d2-dBQf)2018/02/12(月) 15:59:58.64ID:GfEZnF0r0
>>411
null代入なんて無意味

GCは八丈島かw

415デフォルトの名無しさん (ワッチョイ c29f-IOan)2018/02/12(月) 19:01:58.78ID:e2TKDGEW0
値型はとられる領域違うでしょ
なんのための参照型なのかわかってる?
null代入ってnullを指すだけでオブジェクトは残るよね?
GCが参照されなくなったオブジェクトと判断して回収するかはGCのアルゴリズムしだいだけど、基本は使わなくなった参照を指定して解放するよね?

416デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/12(月) 20:36:47.70ID:z/E2YHwX0
値型の代入でもコピーしない場合もあるみたいだね。コピー元が直ちに不要になる場合は
その参照をわたしてそのエリアをそのまま利用する。その方が合理的だから。
まあ単に想像だけど。
そして直ちに不要なのをおもいだして、値を渡したのを忘れて解放してしまう。どうもそういう
バグが偶に出るケースがある。特に初心者があれこれ考えられないような変なことを
やった後とかにそういう現象がでたりする。

417デフォルトの名無しさん (ワッチョイ 42b3-/0XS)2018/02/12(月) 20:43:08.79ID:F3ZoN7fb0
>>415
> なんのための参照型なのかわかってる?
わかってないのはお前だろ w
別にnull代入するためだけにあるわけじゃないし
普通に参照してる変数が無くなったら解放対象になる

418デフォルトの名無しさん (ワッチョイ 319d-+g9t)2018/02/12(月) 20:50:09.59ID:z/E2YHwX0
Enumがdummyを入れないと誤動作するとか、Staticインスタンスの中身が新しいForm2をNewしてForm_Loadの直後に
突如消えるとかそういう現象はまあビギナーズラックみたいなもので普通はそういう現象に出会えない。
コンパイルエラーがでないし正常に動作するのででPropetyの書き方を全部間違っていたのだが、それでも正常に動作していて
あとで書き方の間違いに気が付いて修正する。そういうことで段々と普通のプログラムになってくるとそういうエラーもいつ
の間にか再現しなくなる。

419デフォルトの名無しさん (ワッチョイ c29f-IOan)2018/02/12(月) 21:06:16.17ID:e2TKDGEW0
どこにリファレンスカウントと書いてあるんですかね
ソースは?
マークスイープとは出てきたけど

420デフォルトの名無しさん (ワッチョイ 3102-OL3A)2018/02/12(月) 21:54:53.51ID:q97gmqzs0
会話になってないから透明削除されてるのかと思った

421デフォルトの名無しさん (ワッチョイ e175-jzYt)2018/02/12(月) 22:00:16.10ID:+qsRixLI0
ほーん、で?

422デフォルトの名無しさん (ワッチョイ 3102-OL3A)2018/02/12(月) 22:01:11.36ID:q97gmqzs0
>>421
単芝忘れてんぞ、カスw

423デフォルトの名無しさん (ワッチョイ 3e33-g12m)2018/02/12(月) 22:29:08.55ID:BbO5lIMB0
自作のソフトをビルドしてexeを実行したとたんノートンで弾かれる
出力コードのパターンで引っかかってるらしいけどどうしろというの

424デフォルトの名無しさん (ワッチョイ 2e9a-jA6l)2018/02/12(月) 22:31:10.19ID:P8plNjZg0
>>423
それはノートンのスレで聞くべきかと
プロジェクトのフォルダを監視対象から外すとかできるはず

425デフォルトの名無しさん (ワッチョイ e175-jzYt)2018/02/12(月) 22:37:52.68ID:+qsRixLI0
それだと配布するときに困る

426デフォルトの名無しさん (ワッチョイ 4980-rdni)2018/02/12(月) 22:38:59.14ID:ZU9+AgSV0
開発レベルなら監視対象から外す
頒布レベルならノートンに検体差し出すとかすればいいんじゃなかったっけ?

427デフォルトの名無しさん (ワッチョイ 3e33-g12m)2018/02/12(月) 22:43:12.96ID:BbO5lIMB0
ありがとう
サポに連絡してみる

428デフォルトの名無しさん (ワッチョイ 81b3-PCwM)2018/02/13(火) 04:38:28.69ID:TnW8OQre0
初心者です。
MainWindow.xamlのtextbox name=“A” “B”を
MainWindow.xaml.csにて、配列に格納する場合
どう書けばいいですか?

429デフォルトの名無しさん (スププ Sd62-8zR7)2018/02/13(火) 07:44:33.37ID:tk8A9SM5d
Textbox[] textboxArray = new Textbox[2]{A, B};
こういうこと?

430デフォルトの名無しさん (スッップ Sd62-gWXE)2018/02/13(火) 11:06:19.59ID:i7fy8Ihld
>>428
>MainWindow.xamlのtextbox name=“A” “B”を
これの意味がよく分からない
TextBoxを2つ配置してそれぞれの名前をAとBにしたってこと?

431デフォルトの名無しさん (ブーイモ MM6d-Frkp)2018/02/13(火) 19:39:40.10ID:VYHMGw6PM
queue使わずにListでも似たことが実装可能だと思いますが、queueのメリットってありますか?

432デフォルトの名無しさん (ワッチョイ edd3-jA6l)2018/02/13(火) 20:05:26.97ID:hyhJ5vah0
Listを使わずに済む

433デフォルトの名無しさん (ワッチョイ e5cc-kudU)2018/02/13(火) 20:09:36.43ID:MkuiJNyl0
キューのデータ構造を直感的に操作できることに意味があるのでは?
速度的な話は知らんにゃ。

434デフォルトの名無しさん (ワキゲー MM8a-/z5x)2018/02/13(火) 20:16:33.15ID:ElvL/+ZbM
わざわざ「似たことを実装」せんですむ
List使わなくても配列で似たことを実装できるよね?

>>431
真面目に聞いてるなら、たぶんQueueかListのどちらかまたは両方を理解してないだけだと思う
理解してたらそんなアホな質問はしないと思うなあ

436デフォルトの名無しさん (ワッチョイ ed81-Frkp)2018/02/13(火) 20:23:27.54ID:IAqZQvKL0
>>435
検討違いだから引っ込んでていいよ

437デフォルトの名無しさん (ワッチョイ e175-jzYt)2018/02/13(火) 20:25:51.93ID:4GSdWauJ0
マウンティング

438デフォルトの名無しさん (スッップ Sd62-gWXE)2018/02/13(火) 21:08:44.99ID:i7fy8Ihld
>>431
一般的なキューの作業に限るならパフォーマンスがいい
検索みたいな作業をさせると落ちるけど

439デフォルトの名無しさん (ワッチョイ 1e7f-DXXb)2018/02/13(火) 21:36:16.98ID:EkKTn+I70
>>431
特化していることに意味がある。

・キュー動作(先入れ先出し)以外が出来ない。(途中に入れたり取り出したり出来ない)
・キューに最適化した構造なのでパフォーマンスが良い。

440デフォルトの名無しさん (ワッチョイ e19d-gFWL)2018/02/13(火) 22:15:30.17ID:3CyK4CdI0
パフォーマンスより、それがキュー(FIFOバッファ)であることが明らかなのがメリットなんじゃね

441デフォルトの名無しさん (ワッチョイ be9f-gWXE)2018/02/13(火) 22:45:35.17ID:67cSYExB0
メモリリークや速度に問題がでたときはコードの美しさよりもカリカリに動く方が優先されるかな
どっちのがなんて気にしないでどっちもメリットって考える方が建設的だよ

442デフォルトの名無しさん (ワッチョイ e5cc-kudU)2018/02/13(火) 22:56:07.10ID:MkuiJNyl0
コードポリポリ

今時は速度に問題が出たらマウスでポチポチしてちょっと高いインスタンスに変えたら解決
無駄な開発とメンテのコストをかけるよりずっと安上がり

運用コスト無視か

445デフォルトの名無しさん (JP 0H6d-8zR7)2018/02/14(水) 05:18:51.14ID:DeENz/ESH
FIFO構造のqueueの機能がいかせる場面って、最近は局所的な場面だけだわな。
通信ぐらいか?

446デフォルトの名無しさん (ブーイモ MM85-Frkp)2018/02/14(水) 07:24:46.45ID:bdz0yRJGM
くそコードを綺麗にリファクタリングしてくれるサービスないですかね

447デフォルトの名無しさん (JP 0H6d-8zR7)2018/02/14(水) 07:45:36.60ID:DeENz/ESH
ILSpy

448デフォルトの名無しさん (スッップ Sd62-dBQf)2018/02/14(水) 07:52:00.11ID:Dh0Ktwjhd
きれいにコメントを消してくれるな

449デフォルトの名無しさん (ワッチョイ ed25-jA6l)2018/02/14(水) 09:25:34.75ID:iXQGvev/0
C#始めようと思ったら他と比べて教材あんま出てないし、中古も出回ってなくて高いなあ

450デフォルトの名無しさん (ワッチョイ e175-jzYt)2018/02/14(水) 09:28:37.15ID:9uGoJbXy0
未確認++でよくね

451デフォルトの名無しさん (ワッチョイ 62e0-jA6l)2018/02/14(水) 12:42:24.63ID:pSHgdCSe0
猫でもわかるは?

452デフォルトの名無しさん (スッップ Sd62-dBQf)2018/02/14(水) 12:42:36.42ID:Dh0Ktwjhd
>>449
ネットにいくらでもある

453デフォルトの名無しさん (ワッチョイ c29d-+g9t)2018/02/14(水) 13:17:41.66ID:UFv5UzG30
>>445
キュウは意外と使われていないな。しかし本来連続処理をする場合はキューが必要になる。
例えばフィルターとか、通信処理ではなくてもメッセージの改行ごとの切り出しとか。キューを使うべきなのだが
つかってる例がない。
 そもそもこのQueueの仕様がだめなんだよな。まるでハードFIFOのまんまじゃないか。笑える。
折角オブジェクト指向で柔軟に作り込みできるのに、何の機能もついてない。ライトするときの型とリードするときの型を
変えられないと意味ないだろ。W
というわけで、
配列でライトして、バイトリードできる利口なキューReQueを作りたいんだが、どう定義したらいいんだ?

BCLのQueueは使いづらいのは確か
昔byte[]でもANSIのstringでもpush/popできるQueueを自作したよ

455デフォルトの名無しさん (ワッチョイ c29d-+g9t)2018/02/14(水) 13:38:10.36ID:UFv5UzG30
ReQue<int[], byte > qq;
とか
ReQue <strigng, LineString>pp;
とか
1.は array をライトしてByteでリード
2.はStringでライトして、CRLFの区切りで切り出し
こんなのはできないか?

456デフォルトの名無しさん (ワッチョイ c29d-EuZI)2018/02/14(水) 16:33:41.33ID:UFv5UzG30
 適当に言ってみただけだが、わりと簡単に作れそうだな。
C#って無茶苦茶強力だな。何でもできる。

457デフォルトの名無しさん (ブーイモ MMb6-Frkp)2018/02/14(水) 18:34:43.79ID:9PWsvYdNM
>>435
な?これだけの議論になる。基礎から勉強し直してこい

458デフォルトの名無しさん (ワッチョイ 4de3-60VJ)2018/02/14(水) 18:38:04.56ID:SoqZVQB/0
いいからさっさとプログラム作れよって思う

459デフォルトの名無しさん (ワッチョイ c2d2-TO1f)2018/02/14(水) 20:23:01.20ID:NjiVKZ8+0
猫でもわかるはやめとけ

460デフォルトの名無しさん (ワッチョイ c29d-EuZI)2018/02/14(水) 20:39:24.65ID:UFv5UzG30
楽しいC# 川保昌 が楽しい。

461デフォルトの名無しさん (ワッチョイ 0219-FTGW)2018/02/14(水) 20:42:58.50ID:VDW2B33b0
実戦で役立つ C#プログラミングのイディオム/定石&パターン
独習c#(この前でたもの)が良いと思う

462デフォルトの名無しさん (ワッチョイ 37bb-T3WU)2018/02/15(木) 15:56:01.26ID:5f53kE1X0
WPFってほとんど使われてないって本当ですか?
windows formの方がいまでも需要あるんですかね?WPFしかやったことないから知らなかった。

463デフォルトの名無しさん (オッペケ Sr0b-CL/O)2018/02/15(木) 16:29:04.46ID:TVpLPkaar
ざまりんと共に使う

464デフォルトの名無しさん (ワッチョイ 9fc3-1yoi)2018/02/15(木) 19:39:58.36ID:A5/xapSq0
慣れればWPFの方が楽チン。

WPF用のスレあるから、そっちで

465デフォルトの名無しさん (ワッチョイ d7ea-RFe/)2018/02/16(金) 10:47:11.43ID:whVATIbQ0
https://qiita.com/nskydiving/items/3af8bab5a0a63ccb9893
>Windows Formsの高DPI

VS2017の新機能に高DPIってあるけども、
別にVS2010とかでも、高DPIは使用出来ますよね?
ただちょっとフォントがボケるくらいで、表示不可能とか位置がズレることは無いって認識で合ってますか?

466デフォルトの名無しさん (ワッチョイ 37d3-T3WU)2018/02/16(金) 11:39:04.54ID:gNYDvrte0
Winformsは中途半端なHiDPIサポートが元々入っているせいで
注意深く組まないとネイティブアプリよりもむしろレイアウト崩れやすいレベルだぞ
4.7で追加されたHiDPIサポートとやらもWin10のCUからでないと有効にならない

467デフォルトの名無しさん (ワッチョイ d7ea-RFe/)2018/02/16(金) 13:47:07.04ID:whVATIbQ0
Win10もアップデート次第でレイアウトが異なることがあるのですね・・・。
ありがとうございます。

468デフォルトの名無しさん (ワッチョイ ff8a-F5uH)2018/02/16(金) 21:43:20.45ID:Mt/w8W0Z0
テキスト編集ソフトを作ってるんですが、ユーザーが開いたテキストファイルの一覧を、
外部ファイルを使用せずにアプリ自身に保存するにはどうしたらいいでしょうか?

469デフォルトの名無しさん (ブーイモ MM3b-UGQj)2018/02/16(金) 21:56:21.48ID:A7OU5IQxM
GetManifestResourceStream

470デフォルトの名無しさん (ワッチョイ d775-7aOx)2018/02/16(金) 21:59:34.47ID:aWM8HJJf0
アプリ自身とは?

471デフォルトの名無しさん (ワッチョイ b717-T3WU)2018/02/16(金) 22:02:30.71ID:nFmF7Hof0
>>468
レジストリにでも書いたら?

472デフォルトの名無しさん (ワッチョイ ff81-OzgD)2018/02/16(金) 22:02:51.33ID:PU4qYOCy0
ゲームのカートリッジみたいに読み書き可能な領域がexe内にあると思ってんじゃないのか

473デフォルトの名無しさん (ワッチョイ d775-7aOx)2018/02/16(金) 22:07:54.18ID:aWM8HJJf0
アプリケーション設定とかでいいのでは

ネタ質問だと思うけど無理なことは無理と言ってあげた方が

475デフォルトの名無しさん (ワッチョイ ff81-OzgD)2018/02/16(金) 22:12:01.91ID:PU4qYOCy0
C++で似たようなことをやったときは
exe起動→exeのコピーを作成して起動。オリジナルは終了→
メイン処理→オリジナルのexeを書き換えてPEのチェッサムを再計算
とやった

476デフォルトの名無しさん (ワッチョイ ff81-OzgD)2018/02/16(金) 22:18:35.64ID:PU4qYOCy0
これだとexeが増えてしまうが
exeをコピーして起動でなく、CreateRemoteThreadで他のプロセスに寄生してしまえばexeを増やさなくてすむ
いかにもウイルス的だけど

477デフォルトの名無しさん (ワッチョイ 3725-T3WU)2018/02/16(金) 22:55:11.48ID:znnk/TEX0
javaかじってこっちに流れてちょっと学び始めたけど驚くほどjavaとそっくりなんだね

完成度は全然違うけどな

479デフォルトの名無しさん (ブーイモ MMcf-qi38)2018/02/16(金) 23:39:51.32ID:eZovZERlM
c#8.0ではjavaの機能取り入れるけどな

480デフォルトの名無しさん (ワッチョイ 97b3-0BT5)2018/02/17(土) 00:00:34.91ID:TPVLAw2w0
まあ、後発なんで優れてるのは当たり前

481デフォルトの名無しさん (ブーイモ MM3b-mhGK)2018/02/17(土) 00:36:33.22ID:j0IS5ultM
そりゃJava使いならJavaと対応してるものに目が行くから似てるように感じるのは当然だろう
今のC#は拡張に拡張を重ねてC++に匹敵するくらい複雑怪奇な言語だよ

482デフォルトの名無しさん (ワッチョイ 7f7f-TkRA)2018/02/17(土) 01:06:15.13ID:Pl8OneCg0
>>481
確かに複雑になっては来てるけど、C++に匹敵ってのは大げさだろ。
C++はC++11/14/17と着実に先を進んでるからな。

483デフォルトの名無しさん (ブーイモ MMcf-qi38)2018/02/17(土) 01:29:36.78ID:bbXvf+EMM
c#は最近は後発気味
毎回追加される仕様は他の言語から引っ張って来てるものばかり

typescriptの仕様とかそろそろ入れてくるんじゃないかと思ってる

484デフォルトの名無しさん (ワッチョイ d78a-T3WU)2018/02/17(土) 01:32:34.38ID:+o87Nyag0
議論するならもうちょっと具体的に話してよ

485デフォルトの名無しさん (ワッチョイ 9fd2-OY2t)2018/02/17(土) 02:41:03.42ID:BrkeBPe80
>>483
昔からそうやろ

486デフォルトの名無しさん (ワッチョイ d775-7aOx)2018/02/17(土) 02:51:15.89ID:YrEj1JRO0
タイプスクリプトにあってC#にない機能しないなんてある?

487デフォルトの名無しさん (ワッチョイ d775-7aOx)2018/02/17(土) 02:51:59.54ID:YrEj1JRO0
x 機能しない
o 機能

488デフォルトの名無しさん (ワッチョイ d7f2-T3WU)2018/02/17(土) 08:38:05.68ID:OoNlElF90
TypeScriptの肝とも言える structual type と type guard はC#にはないんじゃないかな。

489デフォルトの名無しさん (ワッチョイ b79f-mrrl)2018/02/17(土) 09:08:22.67ID:Wng2aIfJ0
型関連は TypeScript の方が高度で精密
型消去されるので CLI の仕様に縛られない

TypeScriptの型システムは完全なstructual subtypingで、そもそも型に対する考え方が大きく違う
「同名のメンバを一つでも持っていれば、共通する部分については同じ型と見做す」という、
高度で精密という表現からはかけ離れた大雑把な型システムだよ
インターフェイスの明示的実装なんかは原理的に不可能だし

491デフォルトの名無しさん (ワッチョイ d7f2-T3WU)2018/02/17(土) 10:56:49.75ID:OoNlElF90
既存の型との相互運用は限定されるだろうけど、一つの言語に両者を混在させるところまでは可能だろうな。
ようは型ヒント付きのVariant。

492デフォルトの名無しさん (ワッチョイ d775-7aOx)2018/02/17(土) 10:58:44.71ID:YrEj1JRO0
>>483が言ってるのって構造的型と型ガードのことなの?
他にはないの?

uniontypeとか入れたい人がいるようだけど

void aaa(string | int | double a )
{

こんな感じで複数の型を受け入れられる

c#始めて少しだけど、最初にデータバインドでつまづいて
今は非同期処理を使いこなせなくて辛い
linqもまだまだだし、1人前になるには少なくとも1年はかかるだろうか

495デフォルトの名無しさん (ワッチョイ 37e3-GlTH)2018/02/17(土) 14:13:33.07ID:7mikedr/0
>>494
言語に振り回されてる
大事なことはプログラムを完成させることだし
処理を実現すること

>>495
その通りなんだけど、そもそもやりたいことを実現するために機能が必要なことが多い

xamlに値を直接書きたくない→データバインド
webリクエストを投げてかえってきた結果をスクレイピングして使いたい→非同期処理
コレクションの処理を簡潔に記述したい→linq

全部使わなくても出来るとは思うけど、
どうせあとで書き換えることになるだろうし、
ちゃんと学んでおいた方が後の手戻りが少なくなると思う

497デフォルトの名無しさん (ワッチョイ 97b3-0BT5)2018/02/17(土) 14:37:48.23ID:m4knDq8I0
まあ頑張れ
要は慣れだ

動いてるものを書き換えることは少ないよ

特にlinqへ書き換えは趣味の世界

499デフォルトの名無しさん (ワッチョイ 37e3-GlTH)2018/02/17(土) 14:41:34.73ID:7mikedr/0
>>496
なんか君なんもできなさそうw

継続的に開発して変化に対応しやすいようにするならlinqは短いコードだけ
ちょっと複雑なのは普通にforやforeachがいい場合がある

linqは結局一つの列挙しか返さないから要素数が違ったりするものを組み合わせられない

501デフォルトの名無しさん (ワッチョイ d775-7aOx)2018/02/17(土) 19:07:10.24ID:YrEj1JRO0
zipとか使えばいい普通にできるやろ

>>500
たぶん設計が狂ってるんだろうな
複雑なループってトランザクションスクリプト的な汚いシステム特有の現象だよ
要素数が違うってことは異なるエンティティってことだからそれらを同時に列挙してる時点でなにかがズレてるんじゃないの

503デフォルトの名無しさん (ワッチョイ 37e3-GlTH)2018/02/17(土) 19:49:37.27ID:7mikedr/0
>>502
誰も複雑なループなんて言ってねーじゃん

504デフォルトの名無しさん (ワッチョイ 9fb3-dLOu)2018/02/17(土) 19:53:57.55ID:DOQJ47ER0
レベルの低い知ったかにいちいち構わなくていいよ

>>500
>ちょっと複雑なのは普通にforやforeachがいい場合がある

forやforeachってループじゃないのかぁ

理解力が低い自慢はいいよ

使いたい人はなんでもlinq使えばいい

linqは限られた用途で光るもの
上の方のレスにある属性がMaxの要素を取り出すにはlinqでは2回ループがいる
foreachやforでは1ループでいい
それがどうだと思う人は永遠に初心者のまま

複雑さと関係ない例だよねそれ
まあLinqで困るようじゃ区別つかんか

しっくりこないんです、まで読んだ

509デフォルトの名無しさん (ワッチョイ 3783-qi38)2018/02/17(土) 20:38:57.31ID:cHSXrfCe0
10年前からLINQは糞で遅いから普及しないって言われてた。

510デフォルトの名無しさん (ワッチョイ 7f9f-rtnb)2018/02/17(土) 20:42:15.77ID:eicgzYYd0
>>506
ほう
試しにMaxだと2回ループが走って、foreachだと走らないコード書いてみて

511デフォルトの名無しさん (ワッチョイ ff9a-T3WU)2018/02/17(土) 20:42:54.34ID:42ie9Ser0
初心者の質問スレなんで質問でも回答でもない「先生方」は別のところに行ってください

512デフォルトの名無しさん (ワッチョイ 3783-qi38)2018/02/17(土) 20:44:25.26ID:cHSXrfCe0
関数型言語がなんで廃れてるかがよく分かる。KYなんだよ、彼らは。

513デフォルトの名無しさん (ワッチョイ 17ed-1yoi)2018/02/17(土) 20:51:25.85ID:2dhflQ+l0
「そうそう、アメリカは悪いーヤツなんだよね…」
「あ、俺、最近は洋楽聞いてるんだ…」
「関数型言語がなんで廃れてるかがよく分かる。KYなんだよ、彼らは…」
「コーヒー、砂糖入れなくていいからな…」

514デフォルトの名無しさん (ワッチョイ 37e3-GlTH)2018/02/17(土) 21:07:14.35ID:7mikedr/0
>>505
バカ?
複雑な処理はって話で
「複雑」はループにかかってる修飾語じゃねーだろ
プログラム言語の前に日本語なんとかしろよバーカ

>>514
あのさ文脈少しは気にしたら?

複雑な処理をLinqでやるかループでやるかって比較してたんだろ
ならここでの複雑な処理っての複雑なループか複雑なLinqのどっちかなんだよ

このロジック君にはLinqより難しかったかな?

516デフォルトの名無しさん (ワッチョイ 5710-brYG)2018/02/17(土) 21:29:52.32ID:lDUnRFry0
jsonresultの使い方がよくわからないのですが、Ajaxとかでpostしたら結果を受けることができるって感じなんでしょうか
何故かあんまり解説落ちてない

517デフォルトの名無しさん (ワッチョイ 37e3-GlTH)2018/02/17(土) 21:37:14.41ID:7mikedr/0
>>515
はぁ?
処理は複雑だけど
複雑なループになる確証はねぇだろ
早く死ねよw

>>517
やっぱりわからないんだね

519デフォルトの名無しさん (ワッチョイ 7f9f-PxSw)2018/02/17(土) 21:50:55.57ID:RP1Lckbc0
Linqで書けないような複雑なコレクション操作を何度も書くのはしんどいよ
仮にループで書くとしても1回書いたらそれをLinq拡張として再利用すべきだろうね

520デフォルトの名無しさん (ワッチョイ d775-7aOx)2018/02/17(土) 22:30:36.59ID:YrEj1JRO0
[1]
var maxItem=null;
foreach(var item in list){
if(maxItem!=null&&item.Value>maxItem.Value)
maxItem=item;
}

[2]
var maxItem=list.OrderBy(item=>item.Value).Last();

[3]
var max=list.Max(item=>item.Value);
var maxItem=list.Select(item=>item.Value==max).First();

521デフォルトの名無しさん (ワッチョイ 37e3-GlTH)2018/02/17(土) 22:35:44.05ID:7mikedr/0
>>518
ハイ、逃げたw

>>521
お前がな

523デフォルトの名無しさん (ワッチョイ 5702-7aOx)2018/02/17(土) 22:46:43.47ID:XsSESzO/0
一般的にLINQコードのほうが少ないワーキングメモリで理解できる

524デフォルトの名無しさん (ワッチョイ 37e3-GlTH)2018/02/17(土) 22:52:46.47ID:7mikedr/0
>>522
いいよ
受けて立つよ
お前雑魚だし

>>524
OK
じゃレス読み返してこい

馬鹿らしい勝負だな

適材適所
linqが使い良い場所ならそこで使う
forやforeachが使い良い場所ならそこで使う

汎用性はfor foreachが上

527デフォルトの名無しさん (ワッチョイ 9fd2-AoQc)2018/02/17(土) 23:13:34.50ID:vxC6ekeQ0
なんでいつもlinqの話になると荒れるんだよ

528 ◆QZaw55cn4c (ワッチョイ 9f60-qi38)2018/02/17(土) 23:22:34.74ID:I0BNlfaX0
最近書き直された独習C# ってどんなぐあいですか?
C#2.0 から知識は止まっているので、買ってみようと思うときもあるのですが

>>520
[2]は悪手
ループが多すぎる
並べ替えで何回ループしてるかわからない

しかも無駄にループする可能性があるので
OrderBy Lastの組み合わせじゃなくてOrderByDescending First使うべき

530デフォルトの名無しさん (ワッチョイ ff80-LtD8)2018/02/17(土) 23:33:32.24ID:4BHNVcm10
>>516
JsonResultで検索して真っ先に出てきたここで
http://www.atmarkit.co.jp/ait/articles/0907/10/news109_3.html
解説十分に思うし何が分からんのか分からんのだけども

531デフォルトの名無しさん (ワッチョイ d775-7aOx)2018/02/17(土) 23:55:53.51ID:YrEj1JRO0
Lastだと最後まで列挙されるからってこと?
だから前の誰かはわざわざ降順にしてたのか

532デフォルトの名無しさん (ワッチョイ 3781-eNac)2018/02/18(日) 00:03:26.43ID:EJho87+R0
仕様通りに動けば中身はなんだっていいんだよ。(個人ならね)

今のはlistがIListならLastでもいい

しかし全部の内部の処理動作を覚えて
いちいちその違いを認識してコードを書くとは思えないので
どうしたらパッと見早く動くように見えるかロジカルに考える習慣をつけるべき

534デフォルトの名無しさん (ワッチョイ d775-7aOx)2018/02/18(日) 00:11:53.26ID:sStJYnT/0
デカいリストの時とか変わったループ処理のときだけ原始的な書き方でやればいいんだろうな

そもそも内部構造によって悪手かもしれないなら
普通に[1]を選べばいい

何をやってるかわかるから

536デフォルトの名無しさん (ワッチョイ d775-7aOx)2018/02/18(日) 00:14:40.67ID:sStJYnT/0
デカイリストとか変なループ処理じゃないなら直感的なリンクでいいよね

書いたコードでその人が何を考えて書いたのかはわかるだろう
そして弱点があるならその人のレベルを疑うだろう

PGは無駄がなく速く動くコードを書きたいと願うもの

初心者はまだその域に達していないだけ

538デフォルトの名無しさん (ワッチョイ d775-7aOx)2018/02/18(日) 00:36:10.92ID:sStJYnT/0
アセンブラでも使っとけ。

539デフォルトの名無しさん (ワッチョイ 37e3-GlTH)2018/02/18(日) 01:10:42.14ID:RhG0Chqj0
>>535
でも1ってバグってね?
maxitemに値入るの?

540デフォルトの名無しさん (ワッチョイ 37e3-GlTH)2018/02/18(日) 01:15:11.21ID:RhG0Chqj0
1,2,3ってそれぞれ別のモンを掴んで来そうだけど
こんな欠陥コードで比較してて大丈夫なの?

>>539
省略してあるんだろと思ったけどバグ入り

542デフォルトの名無しさん (ワッチョイ 37e3-GlTH)2018/02/18(日) 01:25:51.97ID:RhG0Chqj0
1,2,3を同じ結果が得られるコードだと思ってるなら不味いよ
っていうか普通にlinqわかりにくいから使ってる奴死のうねってコード
じゃあ、1の不具合修正版と全く同じ動作をする処理を
2と3の形式で書けよって言われるとあんまりlinq使う意味ないんだろ
捨てちゃえよコレ

543デフォルトの名無しさん (ワッチョイ d775-7aOx)2018/02/18(日) 01:57:03.00ID:sStJYnT/0
なに言ってるかわからんが、結局
デカいリストの時とか変わったループ処理のときだけ原始的な書き方でやればいいんだろうな

544デフォルトの名無しさん (ワッチョイ ff81-OzgD)2018/02/18(日) 03:46:52.93ID:ZiIqzVln0
>>527
親を殺されてるのに冷静でいられる奴の方が変だ

545デフォルトの名無しさん (ワッチョイ 7f9f-PxSw)2018/02/18(日) 08:24:37.51ID:AO2fZqe80
要素数が多い場合はDBで処理すればいい
シーケンスの集合演算で容易に解けないようなレアケースは一度だけベタに書いてIEnumerable拡張としてライブラリ化して二度とベタに書いちゃいけない
DRYは基本中の基本

546デフォルトの名無しさん (ブーイモ MMcf-qi38)2018/02/18(日) 08:58:21.87ID:BzKV6Wa9M
オンメモリで処理できるものをDBみたいに糞遅いものに頼ることはないと思うけど
なんかちょいちょい変なやり方をこれがいいですよみたいな書き方はやめたほうがいいよ

547デフォルトの名無しさん (ブーイモ MMcf-qi38)2018/02/18(日) 09:00:31.77ID:BzKV6Wa9M
それにlinqから複数の要素数の違うシーケンスを取り出せないって書いてあるだけだろ
つまんね

548デフォルトの名無しさん (ワッチョイ 9fb3-dLOu)2018/02/18(日) 09:26:20.84ID:f4Owde4c0
>>539
バグ以前にコンパイル通らないだろ
> var maxItem=null;

549デフォルトの名無しさん (スップ Sdbf-rbwa)2018/02/18(日) 10:13:08.45ID:q/GX9XKTd
マウント取りたいだけのゴミクズなんだからNGしろ

>>546
こういうタイプの人がとんでもない件数のデータ取得してAPで集計するみたいな酷い処理を書くのかな

551デフォルトの名無しさん (ワッチョイ 7f9f-PxSw)2018/02/18(日) 11:19:36.09ID:AO2fZqe80
そもそも「linqから複数の要素数の違うシーケンスを取り出せない」って意味不明な文が何を言いたいのか全くわからんのだが

linqはゴミだな

553デフォルトの名無しさん (ワッチョイ 57eb-7aOx)2018/02/18(日) 12:26:53.66ID:xgCSzXkx0
>>551
それな。
zipとかの関数は小さい方に合わせるんだがそういうことではないのかね。

554デフォルトの名無しさん (ワッチョイ 57eb-7aOx)2018/02/18(日) 12:34:55.86ID:xgCSzXkx0
デジタルネイティブならぬlinqネイティブな超初心者の俺には原始的なやり方を出来るだけ使わないやり方のほうが少ないワーキングメモリで理解できて楽なんだが、今まで地道な書き方してきた人はできるだけその書き方をしたいと思うのかね。

555デフォルトの名無しさん (ワッチョイ 57eb-7aOx)2018/02/18(日) 12:40:46.69ID:xgCSzXkx0
超初心者の多いPythonのスレだと関数型的な関数とか内包表記に対して誰も文句言わずに当たり前のように受け入れられてるしね。
俺からみたらこのスレのリンク拒絶反応民は言語学的にみても自然な流れなのにら抜き言葉を受け入れられない老人ってイメージ。

556デフォルトの名無しさん (ワッチョイ b717-T3WU)2018/02/18(日) 12:41:10.66ID:JLsQDeR60
新しい技術を学ばない人なら「地道な書き方」を続けるだろうね

557デフォルトの名無しさん (ワッチョイ 9f06-T3WU)2018/02/18(日) 12:52:21.36ID:1gDuaBcq0
linqは早くなるわけでもないので、見通しが悪くなる場合は使用を控えるのが得策だな
ただ、直感的に判りやすいものは積極的に使うべきだ

>>557
>>520が全部違う結果がかえる時点で超わかりにくいじゃん

559デフォルトの名無しさん (ワッチョイ 17c3-HAsN)2018/02/18(日) 13:01:01.74ID:/P4rmifc0
同意
LINQ云々以前にパッと見で分からん様な処理はちゃんと名前付けるべき

560デフォルトの名無しさん (ワッチョイ 57eb-7aOx)2018/02/18(日) 13:02:06.23ID:xgCSzXkx0
俺のような超初心者には、述語もなくて原始的であちこち飛びまくりで状態変数更新しまくりのコードを理解するのには、長いリンクコードと比較して3倍のストレスを感じてしまうな。
超初心者だから、デカいコレクションとかを効率的に裁かなければいけない状況にはほとんど出会わないけれど、古参のプロプログラマーは俺が普段扱うような大規模でないコレクションには出会わないのかね。

561デフォルトの名無しさん (ワッチョイ 3783-qi38)2018/02/18(日) 13:17:48.49ID:+tLYeZ1A0
保守性もなく糞遅いLINQでわさわざ書く理由が分からない。
もはや初心者スレでマウンティングすることぐらいしかできていないアホ機能。

562デフォルトの名無しさん (ワッチョイ 9fd2-OY2t)2018/02/18(日) 13:25:56.99ID:CuHWMF/m0
LINQすら使えないゴミがまた湧いてんのか

563デフォルトの名無しさん (ブーイモ MMcf-qi38)2018/02/18(日) 13:32:16.48ID:BzKV6Wa9M
LINQしか使えない人がLINQ+そのほかの機能も使える人に噛みついてるだけ
全員補助輪つけろという抗議活動

564デフォルトの名無しさん (ワッチョイ 37e3-GlTH)2018/02/18(日) 13:43:53.51ID:RhG0Chqj0
>>561
それで友の会スレ使わないで初心者スレきてんだ?w
初心者マウンティングがやりたくてわざわざこんなとこで貼ってるのかよ

565デフォルトの名無しさん (ワッチョイ 5702-OzgD)2018/02/18(日) 13:48:41.01ID:YGh6gLdw0
マウンティングならちゃんとやって欲しい
バグコードなんかダッチワイフとシコシコやってるのと変わらないだろ

566デフォルトの名無しさん (ワッチョイ 37e3-GlTH)2018/02/18(日) 13:56:57.83ID:RhG0Chqj0
大したモン作れないから
初心者スレで初心者が見慣れないコード貼って悦に入るゴミクズ
そうでないというなら友の会スレ新しく建ててそっち行けよ
前のはもう消えたけどなlinqなんて誰も使ってねーから

>>555
人語の場合は正しいかどうかの基準は合理性ではないのでその議論はナンセンス。
日本語にも英語にも不合理な文法なんかいくらでもある。

あと、どうせ言っても分からんと思うけど、世代論に限らず「〜ガー」っていうのは
他人からは言ってる本人の被害者意識や被害妄想を語るに落ちてるようにしか聞こえないことに
いい歳こいてるなら気が付いた方がいいと思うw

もちろん受け取る側の他人もいろいろだけどね

>>567
> 「〜ガー」っていうのは
> 他人からは言ってる本人の被害者意識や被害妄想を語るに落ちてるようにしか聞こえない
なにかトラウマでもあるんだろうな w

569デフォルトの名無しさん (ワッチョイ 9fd2-OY2t)2018/02/18(日) 15:15:56.96ID:CuHWMF/m0
>>566
>linqなんて誰も使ってねーから
はいキチガイ

570デフォルトの名無しさん (ワッチョイ ff81-OzgD)2018/02/18(日) 15:53:32.39ID:ZiIqzVln0
違うよアベンジャーだよ

お年寄りなのかな

572デフォルトの名無しさん (ワッチョイ 37e3-GlTH)2018/02/18(日) 16:54:53.07ID:RhG0Chqj0
じゃあどうして友の会スレは消えちゃったの?
誰も書き込んでなかったからでしょ?

573デフォルトの名無しさん (ワッチョイ 97b3-0BT5)2018/02/18(日) 16:59:22.79ID:OJ07T80y0
C#の言語内機能でしかないシロモノで、単品で語る様な物じゃなかったからねえ
スレ自体は落ちて当然というか

むしろWPFスレとかよく残ってんなっていう
(まあそりゃ厳密にはC#以外でも使えるが)

574デフォルトの名無しさん (ワッチョイ 17ed-1yoi)2018/02/18(日) 17:06:51.25ID:bB0zBNw30
WPF悪くないぜ。

575デフォルトの名無しさん (ワッチョイ ff81-OzgD)2018/02/18(日) 17:15:11.69ID:ZiIqzVln0
WPF終わったなって書き込むと
そもそも始まってないしって返ってくるスレ

576デフォルトの名無しさん (ワッチョイ ff81-OzgD)2018/02/18(日) 17:19:44.75ID:ZiIqzVln0
深入りしなければ悪くない
個人的にFormsを使うことはなくなったし
ただエヴァンジェリストとかMVPとかの発言は聞き流すべきだなと思った

577デフォルトの名無しさん (ワッチョイ 3783-qi38)2018/02/18(日) 17:21:43.47ID:+tLYeZ1A0
C#が失速したのはWPFのせいだと思う。

578デフォルトの名無しさん (ワッチョイ 9fe0-T3WU)2018/02/18(日) 17:26:42.00ID:XTUoNfC80
重くて遅いんでしょ
そりゃ誰も使わないよね

WPF食わず嫌いしてたけど使ってみるとすごく楽で良かった
ただレイヤー分割をしっかりできないと逆に使いにくいのかなとも思った
日本の開発の現場ではレイヤー分割の概念がまだ広まってないからそこで失敗して嫌になっちゃうのかもしれない
早すぎたんだろうな

580デフォルトの名無しさん (ワッチョイ 97b3-0BT5)2018/02/18(日) 17:30:54.04ID:OJ07T80y0
WPFは個人的にも好きだよ
あくまで、linqと立ち位置を比較しての話ね

>エヴァンジェリストとかMVPとかの発言は聞き流すべきだなと思った
これには全力で同意だが

馬の耳に念仏って実際かなりあるからなんとも言えんな
エヴァンジェリストやMVPの言ってるのとがレベル高すぎて理解できないだけかもしれん
完全に理解したうえで論理的に反論するならともかく

582デフォルトの名無しさん (ワッチョイ 5716-7aOx)2018/02/18(日) 17:41:14.32ID:4qWLRsuo0
リンク使ってるだけで悦に入ってると思うとかどんなコンプだよ...
linqネイティブの俺には想像もつかんわ。

583デフォルトの名無しさん (ワッチョイ 5716-7aOx)2018/02/18(日) 17:56:25.68ID:4qWLRsuo0
むしろ原始的な書き方をしてる人のほうが悦に入ってそう... w

584デフォルトの名無しさん (ワッチョイ 5716-7aOx)2018/02/18(日) 18:04:51.87ID:4qWLRsuo0
プログラミングがどうしてもできない人もいればなんの不自由もなくできる人がいるように、リンクがどうしても難しい人がいるんだな w
リンク書けるのに原始的な書き方を書けない人は居ない
原始的な書き方はできるけどリンク書けない人は居ないとは限らない w

585デフォルトの名無しさん (ワッチョイ 37e3-GlTH)2018/02/18(日) 18:09:44.28ID:OLHt6KLG0
初心者相手にマウンティングってこれかな?w

586デフォルトの名無しさん (ワッチョイ 37e3-GlTH)2018/02/18(日) 18:14:34.10ID:OLHt6KLG0
これがやりたくて友の会スレから脱獄してきたガイジなんでしょ?
誰も聞いて無いのに突然linq書き出して迷惑してますって被害届出てるよ

587デフォルトの名無しさん (ワッチョイ 9fd2-OY2t)2018/02/18(日) 18:18:05.06ID:CuHWMF/m0
>>586
どう考えても、LINQなんか使ってるやついないって言ってるお前がガイジ

Linq最大の失敗はLinqすら理解できずにぶちぶち文句言う雑魚が存在することを予測できなかったことだな

>>588
関係ないけど標準語ではぶつぶつ文句を言うだけど
ぶちぶちてどこの方言なんだ?

590 ◆QZaw55cn4c (ワッチョイ 9f60-qi38)2018/02/18(日) 18:36:49.68ID:AAhzNgFK0
「でぶでぶ」太る、とかいう人もいるから、その類じゃないかな
ちょっと変わった擬態語でインパクトを与える、というのは日本語ならではだと思います

591デフォルトの名無しさん (ワッチョイ d775-7aOx)2018/02/18(日) 18:40:36.23ID:sStJYnT/0
リンク使っただけでブチブチ言われるとかどんな世の中だよ...
便利で簡単だから使ってるのにそれを難しく感じる連中どもの意見なんて要らない w

自演の白状かなw

ちがうならどこの方言?

>>589
「ぶちぶち」は文句を言うときのオノマトペ(擬音語・擬声語)です。
語彙力は大事だぞ少年よ

難しく感じてるんじゃなくて使いどころを見極めましょうだな
上で一日延々やってたみたいだけど読む気がしない

595デフォルトの名無しさん (ワッチョイ d775-7aOx)2018/02/18(日) 18:44:15.28ID:sStJYnT/0
ブチブチとか俺のところでも普通に使うが w

自演と思いたいなら勝手に思っとけ

ちな愛知

>>593
多分それ方言
周りで誰かつかってるか?

597デフォルトの名無しさん (ワッチョイ d775-7aOx)2018/02/18(日) 18:46:08.76ID:sStJYnT/0
>>594
そそ。
結局
デカいリストの時とか変わったループ処理のときだけ原始的な書き方でやればいいんだろうな
ってこと w

リンク難民は簡単なリンク使っただけでも早さがどうのこうの、動作が理解できないだのブチブチ言うんだよな w
リンクを難しく感じる連中の意見なんて要らない w

598デフォルトの名無しさん (ワッチョイ 37e3-GlTH)2018/02/18(日) 18:47:14.54ID:OLHt6KLG0
linqみてーなマイナー機能に飛びつく傾向があるんだろ

599デフォルトの名無しさん (ワッチョイ d775-7aOx)2018/02/18(日) 18:49:09.00ID:sStJYnT/0
マイナーと感じるのはおまえが使わない(難しく感じるので使いたくない)から w
Pythonとかだと似たような書き方は一般的に使われてるのに w

600デフォルトの名無しさん (ワッチョイ d7f2-T3WU)2018/02/18(日) 18:49:25.48ID:Ct2k6iqr0
特定の地方で用いられる方言ではなく単に「ぶつぶつ」と「ぐちぐち」が混ざったような俗語だろう

辞書にはぶつぶつと はある
ぶちぶちはない

>>596
普通に使われてるよ
ちなみに東京な

日本語を少しかじった在日外国人もぶちぶち文句を言うって言い回しには戸惑うらしい

>>602
どの辞書にぶちぶちが乗ってんだ?

>>603
知らんわ
勝手に探せよ

605デフォルトの名無しさん (ワッチョイ 97b3-0BT5)2018/02/18(日) 18:53:36.86ID:OJ07T80y0

606デフォルトの名無しさん (ワッチョイ ff9a-T3WU)2018/02/18(日) 19:14:06.64ID:uudF1O4B0
スレ違いで質問流すわ質問できない雰囲気作るわ、お前ら最低だよ

607デフォルトの名無しさん (ワッチョイ 9f06-qi38)2018/02/18(日) 19:24:03.84ID:k1v/mjkP0
LINQなんぞ拡張メソッドとラムダ式に過ぎず、実装的には殆どがfor(each)+コールバック+yieldなのに
殊更に対比して語る事自体とても奇妙に思える、yieldは吐くコードが迂遠だから避けられる事はままあるし

608デフォルトの名無しさん (ワッチョイ 9f9d-MriG)2018/02/18(日) 19:36:35.18ID:X6jPePh+0
ところでLinqでシーケンスのあるものって取り出すのはむつかしいか?
例えばSTX、~ 、ETXみたいにSTXとETXに囲まれた〜を取り出す方法ってある?

609デフォルトの名無しさん (ワッチョイ d775-7aOx)2018/02/18(日) 19:38:58.52ID:sStJYnT/0
http://d.hatena.ne.jp/chiheisen/20111031/1320068429

ここの要素を取得(複数)のところにある関数を二回つかう

610デフォルトの名無しさん (ワッチョイ 9f9d-MriG)2018/02/18(日) 19:47:32.81ID:X6jPePh+0
できそうにないな。なにか勘ちがいしてると思う。

611デフォルトの名無しさん (ワッチョイ 9f9d-MriG)2018/02/18(日) 19:48:43.88ID:X6jPePh+0
その二つの関数がなにかをチャンと明示してみな。できないことを証明してやる。

612デフォルトの名無しさん (ワッチョイ d775-7aOx)2018/02/18(日) 19:49:23.27ID:sStJYnT/0
すまん、そのマーカーを除くためにもうひとつの関数がいる

613デフォルトの名無しさん (ワッチョイ d775-7aOx)2018/02/18(日) 19:50:23.80ID:sStJYnT/0
ここまで言えば流石にわかるやろ

>>608
お前の考えてる処理仕様が明確につたわってこない
エスパー回答するならSkipWhile, TakeWhileの組み合わせで解ける

615デフォルトの名無しさん (ワッチョイ 9f9d-MriG)2018/02/18(日) 20:10:08.51ID:X6jPePh+0
質問はエスパーじゃなくてもパーでも解る。
しかし回答はピッタシだ。スペル見ただけで解った。

616デフォルトの名無しさん (ワッチョイ d775-7aOx)2018/02/18(日) 20:11:52.18ID:sStJYnT/0
マウント失敗かよ

617デフォルトの名無しさん (ワッチョイ 5763-bVi4)2018/02/19(月) 15:53:42.66ID:HkGN0Yfm0
てs

618デフォルトの名無しさん (ワッチョイ 97b3-T3WU)2018/02/20(火) 10:02:09.63ID:Dvn/LER50
direct2dの初期化などをc++のdllで行って画像をC#で表示したいんですが
ID2D1HwndRenderTargetのhwndをC#のコントロールのハンドルにすればC#で表示できますか?

619デフォルトの名無しさん (ワッチョイ 97b3-T3WU)2018/02/20(火) 10:33:35.36ID:Dvn/LER50
自己解決しました
できるみたいですね

620デフォルトの名無しさん (ワッチョイ d775-bVi4)2018/02/20(火) 15:36:22.39ID:rWzsbI8r0
死ね

621デフォルトの名無しさん (ワッチョイ 9fc3-1yoi)2018/02/20(火) 15:48:08.22ID:4vbZ+0iW0
生きろ

622デフォルトの名無しさん (ワッチョイ 5710-brYG)2018/02/20(火) 16:08:03.85ID:8AxQ9YzH0
そんな悲しいこと言わないで

623デフォルトの名無しさん (ワッチョイ d775-bVi4)2018/02/20(火) 19:39:20.96ID:rWzsbI8r0
てs

624デフォルトの名無しさん (ワッチョイ d775-bVi4)2018/02/20(火) 19:40:27.94ID:rWzsbI8r0
てす

625デフォルトの名無しさん (ワッチョイ d775-dsKU)2018/02/20(火) 19:43:09.35ID:rWzsbI8r0
てs

626デフォルトの名無しさん (ワッチョイ d775-dsKU)2018/02/20(火) 19:48:16.69ID:rWzsbI8r0
てs

627デフォルトの名無しさん (ワッチョイ d775-dsKU)2018/02/20(火) 19:50:30.91ID:rWzsbI8r0
てs

628デフォルトの名無しさん (ワッチョイ d775-dsKU)2018/02/20(火) 19:50:48.48ID:rWzsbI8r0
てs

629デフォルトの名無しさん (ワッチョイ bf76-HsKf)2018/02/20(火) 20:18:51.99ID:u29zEFTf0
以下のようなコードで、"date"が同じ日付のオブジェクトの"no"を合算するGROUP BY的な処理をLINQで書く事は出来るでしょうか?よろしくお願いします。

class hoge
{
public DateTime date { get; set; }
public int no { get; set; }
}

class Program
{
static void Main(string[] args)
{
var test = new hoge[] {
new hoge { date = DateTime.Parse("2018/02/20"), no = 10 },
new hoge { date = DateTime.Parse("2018/02/20"), no = 20 }
};
//期待する結果 date = "2018/02/20", no = 30
}
}

630デフォルトの名無しさん (ワッチョイ 97bb-OzgD)2018/02/20(火) 20:21:55.34ID:yei3sCdR0
そのものズバリGroupByあるだろが
目ついてんのか

631デフォルトの名無しさん (ワッチョイ d775-dsKU)2018/02/20(火) 20:38:37.21ID:rWzsbI8r0
test.GroupBy(x=>x.date).Select(xs=>new Hoge{date=xs.Key, no=xs.Source.Sum(x=>x.no)})

var key=0;
var grList=new List<IGrouping<int,Hoge>>();
foreach(var x in test){

632デフォルトの名無しさん (ワッチョイ bf76-HsKf)2018/02/20(火) 20:47:17.84ID:u29zEFTf0
教えたいただいたコードをちょっと変えて
var newtest = test.GroupBy(x => x.date).Select(xs => new hoge { date = xs.Key, no = xs.Sum(x => x.no) });
で期待する結果が出ました

LINQの書き方に慣れていないので参考になります
ありがとうございます

633632 (ワッチョイ bf76-HsKf)2018/02/20(火) 20:51:26.55ID:u29zEFTf0
>>631
ちなみにですが
xs.Source
部分はインテリセンスが候補として出して来ないので不要ですよね?
実は肝だったらと気になりまして

634デフォルトの名無しさん (ワッチョイ d775-dsKU)2018/02/20(火) 20:55:58.93ID:rWzsbI8r0
ごめん
そんなものなかった。

635デフォルトの名無しさん (ワッチョイ 9f19-Lei5)2018/02/20(火) 22:02:23.43ID:kFTojjXs0

636 ◆QZaw55cn4c (ワッチョイ 9f60-qi38)2018/02/20(火) 22:09:32.25ID:SJPS4KKx0
>>635
昔から言われていることとは微妙に意味が変わってきているね

flag == false
は OK だが
flag == true
はやめろ!

ってやつじゃない?C では結構重要だ

637デフォルトの名無しさん (ワッチョイ 9fd2-hxII)2018/02/20(火) 22:15:19.97ID:l6nN7Avj0
それってマクロを使ってた flag == TRUE の話じゃなかったっけ。

638デフォルトの名無しさん (ワッチョイ d7f2-T3WU)2018/02/20(火) 22:26:59.92ID:7+Xxu/Ir0
BOOL(intのtypedef)の話だな。flag == true は冗長であることを除けば何の問題もない。
あと、BOOLをTRUEと比較しちゃならんってのもFALSE(0)以外が真とみなされる文脈でのことで、
本当にTRUE(1)を求めているのであればそれと比較することに問題があるはずもない。

639デフォルトの名無しさん (ワッチョイ d775-bVi4)2018/02/20(火) 22:37:10.96ID:rWzsbI8r0
亀レスワロタ

640デフォルトの名無しさん (ワッチョイ 9f19-Lei5)2018/02/20(火) 22:46:07.64ID:kFTojjXs0
VBでのif thenのせいもあるのかなっと想像した

641デフォルトの名無しさん (ワッチョイ 9f9d-MriG)2018/02/20(火) 23:41:38.85ID:vzQfIoah0
if(min <= dt && dt <= max){
debug.print("left thing must be a minimum , right must be a maximum");
}

all your base are belong to us かよw

643デフォルトの名無しさん (ワッチョイ 9f9d-MriG)2018/02/21(水) 00:12:02.20ID:eNjhkesX0
//HACK: This is The Golden Rule of indentation.
if (~) {
 count++;
} else {
 count = 0;
}
//ass:
if (~)
{
}

644デフォルトの名無しさん (ワッチョイ d7ea-QcxC)2018/02/21(水) 11:59:42.26ID:VoejUmIV0
String flag = "true";
if(flag)
{
}

こんなのを見たことあるw

645デフォルトの名無しさん (ワッチョイ ffe8-T3WU)2018/02/21(水) 16:58:56.77ID:5L11m65+0
通るの?

646デフォルトの名無しさん (ワッチョイ 9fd2-AoQc)2018/02/21(水) 18:30:47.40ID:dJIxOW/Y0
通るように String を定義することはできる

647デフォルトの名無しさん (ワッチョイ d775-tT6N)2018/02/21(水) 18:37:11.70ID:dZCmv1cV0
無理やろ

stringじゃなくてStringとか下らない
暇つぶしは否定しないけどもっとプログラマ的に刺激的なこと、それが無理ならせめて面白いこと書いてよ

649デフォルトの名無しさん (ワッチョイ b717-T3WU)2018/02/21(水) 18:48:32.18ID:Ih20in6N0
スレチ

650デフォルトの名無しさん (ブーイモ MMbf-eNac)2018/02/21(水) 19:12:11.56ID:lcaDkaFmM
>>644
バグ仕込むんじゃねー

651デフォルトの名無しさん (アウアウカー Sa6b-q/Ed)2018/02/21(水) 23:23:33.56ID:0HngqlDxa
初歩的な質問ですみません
例外で例えば「FileNotFoundException」が発生した場合に、catch文で、「FileNotFoundException」を文字列として取得するにはどうしたらいいでしょうか
エラーログ取得用です

652デフォルトの名無しさん (ワッチョイ 97b3-T3WU)2018/02/21(水) 23:28:02.97ID:J5LO2Gvl0
[] [[[ [[ [] ][ [] [ ] [] ][]] [[[ [] }

653デフォルトの名無しさん (ワッチョイ 5ed2-ZcLG)2018/02/22(木) 00:11:15.74ID:0C9wYxln0
e.GetType().Name とかじゃなかったっけ。

654デフォルトの名無しさん (ワッチョイ 8e80-t4HZ)2018/02/22(木) 02:07:28.18ID:WgWypcu80
エラーログならむしろex.ToString()全部出したら良くない?

655デフォルトの名無しさん (ワッチョイ fc81-ZGN/)2018/02/22(木) 05:55:09.08ID:F283i7SW0
だな。Tostring一択

656デフォルトの名無しさん (アウアウカー Sa0a-V3L7)2018/02/22(木) 08:04:35.65ID:WBY2nmtra
>>651です
今はToStringで出してるんですが、行数節約の為にと思いまして。>>653で試してみます。
ありがとうございました

657デフォルトの名無しさん (ブーイモ MM5e-ZGN/)2018/02/22(木) 12:18:16.08ID:p5bjr4/wM
>>656
NLogつかえや!

658デフォルトの名無しさん (スップ Sd00-m9q9)2018/02/22(木) 12:27:17.12ID:i1dlLV3xd
要件に対してオーバースペックなのを勧めるのは良くない傾向だと思うにゃ

659デフォルトの名無しさん (ワッチョイ 388a-X1C9)2018/02/22(木) 16:09:55.97ID:ObzUt2i10
最低限の手法を説明しつつ、若干オーバースペックな手法も説明して選択させるのが好き。
メリットデメリットもちゃんと説明する。
普段そうしてる。

660デフォルトの名無しさん (ブーイモ MM5e-ZGN/)2018/02/22(木) 16:50:59.99ID:p5bjr4/wM
だって行数節約っていうから

661デフォルトの名無しさん (ワッチョイ 0ac9-x4Or)2018/02/22(木) 19:46:57.01ID:VeFo5xTp0
n個の"hoge"が入っている配列を作りたいんだけど、
Enumerable.Range(1,n).Select(i => new{"hoge"}).ToArray()
で良いのかな?

662デフォルトの名無しさん (ワッチョイ 2175-xOks)2018/02/22(木) 19:50:23.58ID:c2upgmLY0
new{"hoge"}とは

663デフォルトの名無しさん (ワッチョイ b7b3-x4Or)2018/02/22(木) 20:42:16.50ID:20xIHcyU0
ラムダ見るといつも頭混乱するんだけどこれって見やすいの?

664デフォルトの名無しさん (ワッチョイ 2175-xOks)2018/02/22(木) 20:44:44.31ID:c2upgmLY0
for, foreachも見にくい

665デフォルトの名無しさん (ワッチョイ 8b8a-YGTY)2018/02/22(木) 20:52:56.87ID:aE40aQ4S0
クエリ式の方が苦手
ラムダだとIntelliSenseでスペルミス防げるじゃん

666デフォルトの名無しさん (ワッチョイ 66d2-3OtQ)2018/02/22(木) 21:03:00.95ID:6kd3n/c10
>>663
書いてるモノによる

667デフォルトの名無しさん (ワッチョイ 2175-xOks)2018/02/22(木) 21:23:11.48ID:c2upgmLY0
個人的にはラムダは抵抗なく読める
Pythonの内包表記は苦手

668デフォルトの名無しさん (ブーイモ MM5e-ZGN/)2018/02/22(木) 21:36:26.77ID:p5bjr4/wM
>>663
慣れ次第

>>663
見やすいと思うが個人差あるな
ただまあλの利点って見やすさじゃないからな

670デフォルトの名無しさん (ワッチョイ 2cd2-qPs3)2018/02/23(金) 01:43:15.14ID:+/1erS1S0
>>661
Enumerable.Repeat("hoge", n).ToArray() じゃいかんのか

671デフォルトの名無しさん (ワッチョイ 2175-xOks)2018/02/23(金) 08:15:24.95ID:n9Q43L/40
リンク否定派==ラムダ式嫌悪厨

672デフォルトの名無しさん (ワッチョイ fc83-MTlB)2018/02/23(金) 11:21:56.45ID:xR1rHjlT0
ラムダは過去に一度滅んだ技術だからな。普及するわけがない。

673デフォルトの名無しさん (ブーイモ MM5a-g8a7)2018/02/23(金) 11:37:33.59ID:uhME+YqbM
Lisp復活祭

>>670
それじゃ初心者相手にマウンティングできないだろ

675デフォルトの名無しさん (ワッチョイ fd9e-POFq)2018/02/23(金) 11:56:12.27ID:dqKzXa4r0
EFでList<string>のデータを保存するにはどうしたらいいの?

676デフォルトの名無しさん (ワッチョイ 709d-POFq)2018/02/23(金) 13:43:16.80ID:HedUeMcC0
その前にEFってなにか説明してくれるか?

677 ◆QZaw55cn4c (ワッチョイ ea60-MTlB)2018/02/23(金) 14:28:52.12ID:mpvgXBL20
>>672
え?滅んだんですか?何の技術だったんですか?

678デフォルトの名無しさん (ワッチョイ fc83-MTlB)2018/02/23(金) 14:31:57.61ID:xR1rHjlT0
>>677 ←今日最高の馬鹿。

679デフォルトの名無しさん (ワッチョイ 2175-xOks)2018/02/23(金) 15:28:51.28ID:n9Q43L/40
>>676
おまえ、初心者丸出しに気づいてないの恥ずかしいな

680 ◆QZaw55cn4c (ワッチョイ ea60-MTlB)2018/02/23(金) 15:31:39.83ID:mpvgXBL20
>>678
滅んだ、というのなら、それは何の技術だったのか説明していただけませんか?

681デフォルトの名無しさん (ワッチョイ 2175-xOks)2018/02/23(金) 15:34:34.35ID:n9Q43L/40
ただラムダ式が苦手なだけな奴の見苦しい言い訳に構うなよ w

682 ◆QZaw55cn4c (ワッチョイ ea60-MTlB)2018/02/23(金) 15:37:18.83ID:mpvgXBL20
>>681
だって楽しいじゃありませんか

683デフォルトの名無しさん (ワッチョイ fc83-MTlB)2018/02/23(金) 16:10:34.36ID:xR1rHjlT0
>>680-682
スレチだからこっちでやってくれませんか。
過疎ってるからって初心者スレで暴れないでくださいよ、低脳馬鹿ラムダ厨さん。

λ ラムダ式は神 ラムダ式を崇めよ λ [無断転載禁止]©2ch.net
https://mevius.2ch.net/test/read.cgi/tech/1494867168/

684デフォルトの名無しさん (ワッチョイ fc83-MTlB)2018/02/23(金) 16:14:19.23ID:xR1rHjlT0
古典教師とラムダ厨と被るわ。

役に立たない古い知識で初心者スレでマウンティングとか。→ ID:n9Q43L/40 www

685デフォルトの名無しさん (ワッチョイ 2175-42by)2018/02/23(金) 16:14:40.70ID:n9Q43L/40
C#の例外処理スレを立てたらここはスレチになるのか w
ほんとラムダ式嫌悪厨は哀れだな w

686 ◆QZaw55cn4c (ワッチョイ ea60-MTlB)2018/02/23(金) 16:23:23.04ID:mpvgXBL20
>>683
C# にラムダ式はあるのにどうしてスレ違いなんでしょうか?

687デフォルトの名無しさん (ワッチョイ fc83-MTlB)2018/02/23(金) 16:23:25.22ID:xR1rHjlT0
LINQスレあったよな。なぜそっちでやらないの?
あっ落ちたのかw 過疎りすぎて誰も次は立てる気がないようだw

だって10年でたった1スレすら消費できなかったからなwww 誰も興味ないかよほど嫌われてんだなw

688 ◆QZaw55cn4c (ワッチョイ ea60-MTlB)2018/02/23(金) 16:23:46.81ID:mpvgXBL20
>>684
古い?どうして古いのでしょうか?

689 ◆QZaw55cn4c (ワッチョイ ea60-MTlB)2018/02/23(金) 16:24:34.36ID:mpvgXBL20
>>687
C# に LINQ はがっちり含まれているのに、どうしてスレ違いなんでしょうか?

690デフォルトの名無しさん (ワッチョイ fc83-MTlB)2018/02/23(金) 16:27:53.73ID:xR1rHjlT0
ID:n9Q43L/40 ←惨め杉www 初心者スレでマウンティングするしかないww

> リンク否定派==ラムダ式嫌悪厨
> ただラムダ式が苦手なだけな奴の見苦しい言い訳に構うなよ w
> おまえ、初心者丸出しに気づいてないの恥ずかしいな
> ほんとラムダ式嫌悪厨は哀れだな w

ほんとこいつ初心者スレで煽りとマウンティングしかしてねぇw

691デフォルトの名無しさん (ワッチョイ 2175-42by)2018/02/23(金) 16:27:53.99ID:n9Q43L/40
なにこいつ

692デフォルトの名無しさん (ワッチョイ 709d-POFq)2018/02/23(金) 16:42:11.85ID:HedUeMcC0
byte[]buf = 1,2,3,4,5、ETX,7,8,9
AX=1,2,3,4,5 
BX=ETX,7,8,9
BufからAX,BXをわけて取り出ししたい。(ETXはAX側でもBX側でも構わない)
AX=buf..TakeWhile(x=>x!=ETX);
とすれば取り込めるが、BXはどうしたらいいのだろう?

693デフォルトの名無しさん (ワッチョイ 2175-42by)2018/02/23(金) 16:50:56.55ID:n9Q43L/40
SkipWhile

694デフォルトの名無しさん (ワッチョイ 709d-POFq)2018/02/23(金) 16:56:26.65ID:HedUeMcC0
SkiPWhileは違う。ETXで分離するのが目的だからだ。

695デフォルトの名無しさん (ワッチョイ 709d-POFq)2018/02/23(金) 16:56:39.74ID:HedUeMcC0
>おまえ、初心者丸出しに気づいてないの恥ずかしいな
初心者丸出しが恥ずかしいことか? 陳湖丸出しとは分けが違うがお前はそういう趣味でもあるのか?

>C# にラムダ式はあるのにどうしてスレ違いなんでしょうか?
主観の問題だ。しかし感受性の問題でもある。ひらたく言うとどこにも頭の悪いのはいる。

>古い?どうして古いのでしょうか?
主観の問題だ。少しズレた主観もある。

>C# に LINQ はがっちり含まれているのに、どうしてスレ違いなんでしょうか?
しつこい質問者だからあえてシツコク答えるが主観の問題だ。しかしシツコク追い求めるのはプログラマーの適正でもある。

696デフォルトの名無しさん (ワッチョイ 2175-42by)2018/02/23(金) 16:59:23.35ID:n9Q43L/40
なにこいつ
自演かよ w

697デフォルトの名無しさん (ワッチョイ c4e3-/K1Y)2018/02/23(金) 17:04:26.33ID:dt6qd38x0
>>687
なぁ、いい加減誰も使って無いって気づいて欲しいぜ

698デフォルトの名無しさん (ワッチョイ 709d-POFq)2018/02/23(金) 17:07:21.06ID:HedUeMcC0
>>696 
オブラートで包むと意味が解らないか? 解るようにハッキリ言うと荒れるしな。
困ったものだ。
SkiPWhileじゃだめってのはわかるか?

699デフォルトの名無しさん (ワッチョイ acdc-DAvH)2018/02/23(金) 17:09:44.82ID:qhDonetZ0
このスレってリンクの質問ばっかだろ
なんで使われてないと思うのか謎
もしかして全員同じ人と思ってるの?

700デフォルトの名無しさん (ワッチョイ c4e3-/K1Y)2018/02/23(金) 17:11:07.74ID:dt6qd38x0
>>699
それ同じ奴が一人でやってね?

701デフォルトの名無しさん (ワッチョイ c4e3-/K1Y)2018/02/23(金) 17:14:54.58ID:dt6qd38x0
だって10年で1スレ消費できないってかなりのもんだよ
まあ、友の会スレに書き込んで無かった君が一番わかってることだと思うし言っても無意味だと思うけどw

702デフォルトの名無しさん (ワッチョイ 2c4c-J93t)2018/02/23(金) 17:16:12.64ID:DtpzHUGD0
>>700
そう思うと怖い

703デフォルトの名無しさん (スップ Sdc4-m9q9)2018/02/23(金) 17:16:16.48ID:Vu0TXWr8d
私の為に争うのはヤメテ!

704デフォルトの名無しさん (ワッチョイ 2175-42by)2018/02/23(金) 17:17:31.24ID:n9Q43L/40
試しにC#非同期スレ立ててみようぜ w
どうせ伸びないから w
みんな使ってないもんな w

705デフォルトの名無しさん (ワッチョイ 0a80-IMbs)2018/02/23(金) 17:18:24.48ID:uDoJo6b+0
# 先頭文字で、配列の要素をグルーピング
animals = ["cat", "bat", "bear", "camel", "alpaca"]

p animals.group_by {|item| item[0].chr }
{"a"=>["alpaca"], "b"=>["bat", "bear"], "c"=>["cat", "camel"]}


Ruby では、group_by で、配列の要素をグルーピングできる。
ブロックの戻り値が同じ要素で、グルーピングする

他にも、partition で、要素を2つの配列に分けられる

706デフォルトの名無しさん (スップ Sdc4-+xKg)2018/02/23(金) 17:19:14.55ID:MOvRrowfd
>>672
普及してないわけがない

707デフォルトの名無しさん (ワッチョイ 2175-42by)2018/02/23(金) 17:20:15.65ID:n9Q43L/40
C#でもできる
partionはないが多分GroupByで代用できる

708デフォルトの名無しさん (ワッチョイ 709d-POFq)2018/02/23(金) 17:30:54.68ID:HedUeMcC0
じゃあGroupBy使って
byte[]buf = 1,2,3,4,5、ETX,7,8,9
をETXの前後で分解してみて。

709デフォルトの名無しさん (ワッチョイ 2175-42by)2018/02/23(金) 17:31:48.42ID:n9Q43L/40
使用法が明らかに間違ってる

710デフォルトの名無しさん (ワッチョイ 709d-POFq)2018/02/23(金) 17:37:08.15ID:HedUeMcC0
でも分解する場合には他に適当な方法がないのでは? GroupByとIndexを併用すれば
なんとかならないか?

711デフォルトの名無しさん (ワッチョイ 2175-42by)2018/02/23(金) 17:38:45.30ID:n9Q43L/40
明らかにそんなやり方よりTakeWhile, SkipWhileを使うやり方のほうが真っ当

712デフォルトの名無しさん (ワッチョイ 709d-POFq)2018/02/23(金) 17:48:52.71ID:HedUeMcC0
>明らかにそんなやり方よりTakeWhile, SkipWhileを使うやり方のほうが真っ当

不味いんじゃないだろうか?
要するにループを頭から2回まわすことになるだろ。
Ax=  buf.TakeWhile(〜)
Bx= buf.SkipWHile(~)

それならForeachの方がいいとおもう。
AX= ETXを見つけるまでこっちに入れる。
BX=ETXを見つけた以後はこっちに入れる。

713デフォルトの名無しさん (ワッチョイ 2175-42by)2018/02/23(金) 17:50:19.68ID:n9Q43L/40
効率が問題になるほど大規模なリストなら原始的な書き方をする。
そうでないならLinqでいい

714デフォルトの名無しさん (ワッチョイ ace2-DAvH)2018/02/23(金) 17:54:47.58ID:SLOEwN9a0
linqがボトルネックにならないならlinqでいいよな。

715デフォルトの名無しさん (ワッチョイ 9317-x4Or)2018/02/23(金) 18:04:05.03ID:GzrRa5he0
linqがボトルネックになる場合ってそもそもC#でやっちゃいけないでしょ

ZDDアルゴリズムを実装してくれればLINQ使うよ

717デフォルトの名無しさん (スップ Sdc4-m9q9)2018/02/23(金) 18:11:18.36ID:Vu0TXWr8d
どうして出来る人アピールしてしまうん?

>>692
そういうの、差集合って言うんじゃない?

719デフォルトの名無しさん (ワッチョイ 709d-POFq)2018/02/23(金) 18:46:00.97ID:HedUeMcC0
>>718
いいね!いいね! そのヒント。 君が一番頭いい。

720デフォルトの名無しさん (ワッチョイ 4dcc-vfvv)2018/02/23(金) 18:54:21.63ID:0/Ox6Qa+0
ふふってなった

ただ、あるインデックスの前後で二分するだけならたぶん無駄に非効率なんだろうけどね

722デフォルトの名無しさん (ワッチョイ 2175-xOks)2018/02/23(金) 19:01:32.01ID:n9Q43L/40
Spanとかもあるよな
使えるのか知らないけど

723705 (ワッチョイ 0a80-IMbs)2018/02/23(金) 19:03:45.51ID:uDoJo6b+0
scores = %w[1 2 3 4 5 ETX 7 8 9]

numbers = scores.each_with_object({}) do | num, h |
# 配列の初期化
h[:before] = [] unless h[:before]
h[:after] = [] unless h[:after]

if h[:ETX]
h[:after].push num
else
if num == "ETX"
h[:ETX] = true
else
h[:before].push num
end
end
end

p numbers
{:before=>["1", "2", "3", "4", "5"], :after=>["7", "8", "9"], :ETX=>true}

Ruby の、each_with_index メソッドは、引数に蓄積器を指定して、繰り返し処理する。
空のハッシュ { }に、結果を蓄積していく。
"ETX"があったかどうかの状態を記憶して、処理を分岐する

724デフォルトの名無しさん (ワッチョイ 2175-xOks)2018/02/23(金) 19:05:18.26ID:n9Q43L/40
よく分からんけどaggregateでできそう

725705 (ワッチョイ 0a80-IMbs)2018/02/23(金) 19:06:59.32ID:uDoJo6b+0
>>723
修正

>Ruby の、each_with_index メソッドは、引数に蓄積器を指定して、繰り返し処理する

each_with_index ではなく、each_with_object

726デフォルトの名無しさん (ワッチョイ 2cd2-qPs3)2018/02/23(金) 19:09:29.58ID:+/1erS1S0
var temp = buf
.Select(x => new { value = x, flag = x < etx })
.GroupBy(x => x.flag, x => x.value)
.Select(x => x.AsEnumerable())
.ToArray();
var ax = temp.First();
var bx = temp.Last();

727デフォルトの名無しさん (ワッチョイ 709d-POFq)2018/02/23(金) 19:41:12.35ID:HedUeMcC0
flag = x < etx
これってETX以前はTrueになる? たぶんそういう意図だろうけど
xはindexだろけど、etxと比較しても駄目って思うが、、、

728デフォルトの名無しさん (ワッチョイ c4e3-/K1Y)2018/02/23(金) 19:56:29.96ID:dt6qd38x0
遅い上に分かりにくいとか腹切れよ

729デフォルトの名無しさん (ワッチョイ 4dcc-m9q9)2018/02/23(金) 19:58:38.07ID:0/Ox6Qa+0
切腹!

730デフォルトの名無しさん (ワッチョイ 0ac9-x4Or)2018/02/23(金) 19:59:57.49ID:BNJod0Dt0
>>670
ありがと、これで上手く行ったよ

731デフォルトの名無しさん (ワッチョイ c4e3-/K1Y)2018/02/23(金) 20:10:18.44ID:dt6qd38x0
linqなんてクソ機能を使うと移植が大変になるわけだが

732デフォルトの名無しさん (ワッチョイ 2175-xOks)2018/02/23(金) 20:12:36.02ID:n9Q43L/40
レス乞食かよ

733デフォルトの名無しさん (ワッチョイ 4dcc-m9q9)2018/02/23(金) 20:14:11.92ID:0/Ox6Qa+0
時代は書き捨て

イテレーター書くだけだから逆に移植しやすくなる
抽象化レイヤーがないと全てのループ処理について移植できるかどうか
移植するにはどうすればいいか
例外ケースはないかなど悩まなくてはならない

735デフォルトの名無しさん (ワッチョイ c4e3-/K1Y)2018/02/23(金) 21:40:37.26ID:dt6qd38x0
>>734
は?普通はそんなことすらやらなくてよくね?

>>735
linqを使わないで移植すると移植しなきゃならないコードが一気に増える
linqを使っていればlinqを移植するだけでほとんど終わり
簡単だね

737デフォルトの名無しさん (ワッチョイ 8b8a-YGTY)2018/02/23(金) 21:47:11.90ID:HTtnUDjj0
日曜大工プログラマーなんだけど、実際Linq使わないってなるとプロの方はどういうことを基本としてるの?
プロの方々なら当然Linqも理解して手段の一つとして持ってると思うけど
あえてそれは使わないってなると、同じこと実現するのに何が基本となるのかまじめに教えてください

738デフォルトの名無しさん (ワッチョイ 8e81-CTWy)2018/02/23(金) 21:56:01.30ID:ls86f3vQ0
周りにはlinq使うなよと吹聴しつつ自分は使うというのが最高に決まっとる

739デフォルトの名無しさん (アウアウカー Sa0a-V3L7)2018/02/23(金) 22:02:51.89ID:I1cwUeCia
>>737
察してw

740デフォルトの名無しさん (ワッチョイ c4e3-/K1Y)2018/02/23(金) 22:29:12.34ID:dt6qd38x0
>>736
どういう理屈で?w

741デフォルトの名無しさん (ワッチョイ e206-MTlB)2018/02/23(金) 22:51:27.85ID:xGnoN5r+0
LINQなんて銘打たれてても只のパターンだからねぇ
デリゲートがインライン展開されるならまだしも
switchまみれのIEnumerator<T>とかは草生える

どうせコントロール追加もAddよりAddRangeの方が良いし
概ねArrayやList<T>のメソッドで済む事が多いな
あと拡張メソッド多すぎでIntelliSenseの邪魔、フィルタが面倒

742デフォルトの名無しさん (ワッチョイ 2175-42by)2018/02/23(金) 22:57:32.27ID:n9Q43L/40
効率はすでに言った通りだからともかくとして、このスレのlinqの質問のほとんどはarrayやlistのメソッドでは事足りないだろう

743デフォルトの名無しさん (ワッチョイ e206-MTlB)2018/02/23(金) 23:12:07.47ID:xGnoN5r+0
LINQ使わずに同等の処理をしたいならそれこそReference Source参照で良いんじゃね
個人的にはyieldもブロックスコープで最適化したくなる妙な実装に思えるけど

徹夜の日に限って変な流れになってるな

745デフォルトの名無しさん (ワッチョイ 0ac9-x4Or)2018/02/24(土) 09:13:57.78ID:Pu6BYc+K0
LINQとか表記は割りとどうでも良いからユニットテストがきちんと書けるソースコードにして欲しいと、200行超えの他人のクソメソッドをメンテしてて思った
リファクタリング楽しいです(^q^)

746デフォルトの名無しさん (ワッチョイ 2175-xOks)2018/02/24(土) 09:20:58.48ID:QPTXris90
スレチ

747デフォルトの名無しさん (ワッチョイ 709d-saxG)2018/02/24(土) 19:03:52.84ID:53z7t7hD0
Span実験してみたい。しかしSystem.Memoryインストールに失敗する。何でだろう?

スレチだからだろ

749デフォルトの名無しさん (ワッチョイ 8b8a-YGTY)2018/02/24(土) 20:04:36.63ID:+6d6qq1k0
素人ながらに四苦八苦しながら小規模の業務アプリを作っているのですが
Program.csに、アプリケーションに保持させておきたい情報をまとめた自作クラスを
staticで保持させておいて、全フォーム通してそれを読み出せるのかと考えたのですが
愚行でしょうか?

750デフォルトの名無しさん (ワッチョイ 8e9a-x4Or)2018/02/24(土) 20:07:50.60ID:cFklsH6f0
>>749
なんの問題があるの?
Program.csでなくてもいいし発想そのものはCとかのヘッダファイルとかと同じだよね

>>749
本当にその必要があるならその方法でグローバルな情報を持ってOKだと思う。
前に同じ質問で「そんなものコンストラクタの引数で渡せ」と書いてた人がいたが、
むしろそっちの方が不適切。

でも、本当にそれが必要なのかは再考した方がいいかもね。
グローバルなデータなんて普通はそんなにいらないよ

>>750
だからそれを聞いてるんでしょw
っていうかヘッダファイルって意味不明だよww

752デフォルトの名無しさん (ワッチョイ e206-MTlB)2018/02/24(土) 21:09:31.61ID:0Rn3tA0A0
>>749
普通はVSのフォームデザインでプロパティからApplicationSettingにてPropertyBindingを行う
プロジェクトのプロパティに設定一覧も出るし、スコープで保存先を変えられる、コードでの扱いは↓
https://docs.microsoft.com/ja-jp/dotnet/framework/winforms/advanced/how-to-write-user-settings-at-run-time-with-csharp

>>749
どんな設定かによって答えが変わるので情報出して
汎用性考えるならインジェクションだけどまだ練度が足りないかな

754デフォルトの名無しさん (アウアウカー Sa0a-V3L7)2018/02/24(土) 21:28:23.83ID:kaoxpwmua
質問よろしいでしょうか
ある複数のパラメータを持ったクラスを他のクラスのメンバに代入すると、そのパラメータが変更されたら代入先のメンバも書き変わってしまいますよね?
一度代入した時点から勝手に書き変わられたくない場合、パラメータを持ったクラスがクローンを返すような実装をするのがいいんでしょうか。他に定石等あれば教えて頂きたいです

755デフォルトの名無しさん (ワッチョイ 8b8a-YGTY)2018/02/24(土) 21:48:34.45ID:+6d6qq1k0
みなさまご教授ありがとうございます

グローバルを持つべきか再度よく検討の上やってみたいと思います

>>752
自作クラスだと一手間いるのと、修正しやすさでProgram.csに置きたいなと

756デフォルトの名無しさん (ワッチョイ 2175-42by)2018/02/24(土) 21:53:04.14ID:QPTXris90
ApplicationSettingsは自作クラスじゃなくてVSのきのうだよ

757デフォルトの名無しさん (ワッチョイ 8b8a-YGTY)2018/02/24(土) 21:54:11.29ID:+6d6qq1k0
>>753
端末のIPやらMacアドレスのほか、データベースへの接続文字列を実行中に随時切り替えて接続させてるのですが
そのためのList<string>とかです
あとはNotifyIconをおいて、アプリの動作状況によって各Form上からも通知アイコンの画像を変更させてます

758デフォルトの名無しさん (ワッチョイ 0cb3-UG62)2018/02/24(土) 23:53:38.00ID:KMKYwria0
>>754
構造体とかイミュータブルオブジェクトとか

定石なんてないよ

ふとReduxが思い浮かんだ

>>754
(1) クローンを返す
(2) イミュータブルな別の型(インターフェイス or コンポジション)として返す
(3) 気にしない

761デフォルトの名無しさん (ワッチョイ 509f-ukBS)2018/02/25(日) 07:34:26.22ID:/V/K592r0
>>757
切り替える条件は?

762デフォルトの名無しさん (ワッチョイ c4e3-o9L9)2018/02/25(日) 07:44:13.77ID:r9nYZ4dr0
>>754
メンバに参照を保持るのは禁じ手

そのインスタンスが死んだらハングアップすんじゃん
必要であるたびにメソッドの引数から必要な分だけ必要な形で渡すのが真っ当なやり方

763デフォルトの名無しさん (ワッチョイ a49f-QP7I)2018/02/25(日) 07:52:39.23ID:JzRpHb2B0
>>755
そのファイルにクラスおいた方が楽って感覚がわからないな
1クラス1ファイルが基本だし別のファイルおいた方が色々楽だと思うけど
まさかないと思うけどpublicなインナークラスにするのはよくないから気をつけてね

764デフォルトの名無しさん (ワッチョイ 8b8a-YGTY)2018/02/25(日) 08:09:40.74ID:zTlznGKg0
>>761
拠点毎のデータベースと、全拠点と端末を管理したり共通の設定情報を保持するデータベースとわけてるので
必要な情報に応じて動的につないでSQL文を実行させてます
>>763
全体を管理するデータベースの情報を元に端末毎に動作する権限や機能を割り当てるようにしてるので
起動するフォームを異なります
なので、初回フォームが起動する前に端末情報をProgram.csに保持させたいということと
異なる役割の端末(Form)からでも共通の設定値を利用したかったからです

>まさかないと思うけどpublicなインナークラスにするのはよくないから気をつけてね
この辺の理解がだめです・・・(書籍を読んで独学で一人でやってます)
外部クラスなりにProgram.csにおいたStaticな自作クラスにアクセスさせてはだめってことなのかと理解しましたが
具体的にどうだめなのかがさっぱりで・・・

765デフォルトの名無しさん (ワッチョイ 30d2-Oqyw)2018/02/25(日) 09:12:28.17ID:2NYrBiBT0
Listで中にclassをaddしていって
中のclassが解放されて歯抜けになって状態でaddした場合
nullの配列にaddされるか
歯抜けになったのをソートして埋めることって出来ない?

766デフォルトの名無しさん (ワッチョイ 8e81-CTWy)2018/02/25(日) 09:17:00.34ID:9xGztD1y0
自分で明示的にnull代入しない限りListが歯抜けになったりしないだろ

767デフォルトの名無しさん (ワッチョイ 30d2-Oqyw)2018/02/25(日) 09:17:08.24ID:2NYrBiBT0
Listで型をclassにしてaddしていって
格納したclassがいくつか解放されて歯抜けになった状態でaddしたときに
歯抜けになった配列を埋めるようにaddされるか
歯抜けになったのをソートして埋めることって出来ない?

768デフォルトの名無しさん (ワッチョイ 9317-x4Or)2018/02/25(日) 09:18:12.91ID:CDH/Z0oO0
Removeじゃダメなの?

769デフォルトの名無しさん (ワッチョイ 30d2-Oqyw)2018/02/25(日) 09:19:46.70ID:2NYrBiBT0
>>766
いくつかaddして
listとは関係なく外部でclassを解放した場合
歯抜けになるでしょ

770デフォルトの名無しさん (ワッチョイ 9317-x4Or)2018/02/25(日) 09:20:59.44ID:CDH/Z0oO0
ならねーよ

771デフォルトの名無しさん (ワッチョイ 8e81-CTWy)2018/02/25(日) 09:21:11.90ID:9xGztD1y0
その外部でclassを解放するって具体的に何のクラスのどのメソッドを呼んでいるんだい

772デフォルトの名無しさん (ワッチョイ 30d2-Oqyw)2018/02/25(日) 09:22:46.35ID:2NYrBiBT0
>>768
解放したいんじゃなくて
解放されて歯抜けになったとこにaddするか
ソートして歯抜けを埋めたいんだって

773デフォルトの名無しさん (ワッチョイ c4e3-o9L9)2018/02/25(日) 09:22:50.63ID:r9nYZ4dr0
dipose呼んだらゾンビになるだけでそいつはそいつだぞ

774デフォルトの名無しさん (ワッチョイ 8e81-CTWy)2018/02/25(日) 09:32:30.72ID:9xGztD1y0
まあ、いいや
超常現象でnullになるとしよう
Addに自動で隙間を埋めるような介護機能はない
IndexOfでnullの場所を探すのみ

775デフォルトの名無しさん (ワッチョイ 30d2-Oqyw)2018/02/25(日) 09:43:15.18ID:2NYrBiBT0
まじかよ
listが無限にふくらんでいくじゃん

776デフォルトの名無しさん (ワッチョイ c4e3-o9L9)2018/02/25(日) 09:46:55.08ID:r9nYZ4dr0
removeしろよ

777デフォルトの名無しさん (ワッチョイ 0ac9-x4Or)2018/02/25(日) 09:58:59.63ID:hHxXPhxe0
Listと配列を同じだと思ってそう

778デフォルトの名無しさん (ワッチョイ a49f-QP7I)2018/02/25(日) 10:22:48.34ID:JzRpHb2B0
>>764
何を言ってるのかよく分からないけど、
Program.csにProgramクラスとTestクラスを作るのと、Program.csにProgramクラスTest.csにTestクラスを作るのは同じ
どっちでもいいけど普通は後者かな

ただ、以下のようなインナークラスにはするなってこと
static class Program{
...
public static class Test{}
}

779デフォルトの名無しさん (ワッチョイ 8b8a-YGTY)2018/02/25(日) 10:30:01.83ID:zTlznGKg0
>>778
よくわかってなくてすみません
ただ、まさにインナークラスになる記述です
具体的に避けるべき理由を教えて頂けませんか?

780デフォルトの名無しさん (ワッチョイ e206-MTlB)2018/02/25(日) 10:37:08.47ID:vhA3QBh60
>>769
classがオブジェクト参照を意図するなら、Listが持っている時点でインスタンスは解放されない
Dispose()はアンマネージリソースといった“メンバーの解放”でインスタンス自体を解放はできない
GCは強参照されていないインスタンスしか解放しないので、明示的に代入しない限りnullに成りようがない

ひょっとしてやりたいのはこういう事か?(※機械翻訳のようで日本語が不自由
https://docs.microsoft.com/ja-jp/dotnet/standard/garbage-collection/weak-references
IDisposableに処分済みインターフェイスは無く、ObjectDisposedExceptionを投げるクラスは独自の内部フラグ

>>779
関係ないクラスを一緒くたに管理しないほうがいいってこと
マシン設定ならマシン設定
データベース設定ならデータベース設定
権限管理なら権限管理
アイコン管理ならアイコン管理
プログラムは1つ1つ関心ごとに分けて後で組み合わせるのが基本
設定項目も一緒くたにしないで個別に設定クラスを作る

782デフォルトの名無しさん (ワッチョイ 709d-saxG)2018/02/25(日) 11:08:26.61ID:D3C+bdq60
それはインナークラスとどう関係あるって?

783デフォルトの名無しさん (ワッチョイ 8e9a-x4Or)2018/02/25(日) 11:13:41.43ID:6DcyW01S0
>>779
アクセス名が長くなるから外に出せば見栄えが良くなる。
public staticだから動作には関係ない
ここで何でも聞いて気にするより動かしてみて確認したほうがいい

784デフォルトの名無しさん (ワッチョイ a49f-QP7I)2018/02/25(日) 11:14:15.87ID:JzRpHb2B0
>>779
Programのデフォルトの公開範囲がprivateだから

って思ったんだけどクラスって省略されるとinternalなんだね
じゃあ別にやってもいいかな
ただ、各フォームから起動元であるprogramクラスにアクセスするのは違和感があるからインナークラスは推奨しない
よく言われるグローバル変数にせず、フォームの起動時に引数で渡せばいいと同じレベルの話だから余り気にしなくていいかも

785デフォルトの名無しさん (ワッチョイ 709d-saxG)2018/02/25(日) 11:24:18.30ID:D3C+bdq60
>普通はVSのフォームデザインでプロパティからApplicationSettingにてPropertyBindingを行う
これはどういう意味や?
バインディングってのはデータソースがコロコロ変わる時に便利なだけだろ。何でグローバル変数みたいな
変わらんものに「普通は、、、、使う」なんて言いきれるんだ。
意味わからん。

786デフォルトの名無しさん (ワッチョイ 509f-z29z)2018/02/25(日) 11:43:52.16ID:/V/K592r0
グローバル変数(static変数)なんて難しすぎる機能は初心者には扱いきれないでしょう
普通にコンストラクタやメソッドに必要なものを渡していけば確実、安全、簡単だよ

var loginForm = new LoginForm();
loginForm.ShowDialog();
var loginUser = loginForm.LoginUser;

var loginService = new LoginService();
loginService.Login(loginUser);

var systemInfo = SystemInfo.Read();
var databaseModule = new DatabaseModule(loginUser, systemInfo);
var authModule = new AuthModule(databaseModule, loginUser, systemInfo);
var domainService = new DomainService(databaseModule, authModule);
var iconManager = new IconManager("url://to/icon/resource/base");
var formFactory = new FormFactory(databaseModule, authModule, domainService, iconManager, loginUser, systemInfo);

Application.Run(formFactory.CreateMainForm());

loginService.Logout(loginUser);

設定値と処理を密にすると
設定値集Aと設定値集Bとか異なる設定で動かさなきゃいけないときにウザいよ

それを消そうとするとグローバル変数は消えるけど
仕様でそういったもんが別にいいなら問題は起きない
環境変数みたいにインストール時に固定なんだよ的な

788デフォルトの名無しさん (ワッチョイ 709d-saxG)2018/02/25(日) 14:52:23.69ID:D3C+bdq60
>グローバル変数(static変数)なんて難しすぎる機能は初心者には扱いきれないでしょう

何を根拠に難し過ぎるというのか意味不明だ。
 複雑だからか? どう複雑なんだ? 複雑なわけない。w
 他に難しい理由があるのか? 誤動作するからか? するわけない。w

 ちゃんと理由を上げて説明してみろよ。

789デフォルトの名無しさん (アウアウカー Sa0a-msg2)2018/02/25(日) 19:09:25.59ID:xxKEYzcHa
>>758-760>>762
ありがとうございます
参考になりました。頂いた内容で再検討してみます

790デフォルトの名無しさん (ワッチョイ 539f-CyJp)2018/02/25(日) 20:38:41.80ID:vwrCxs9l0
入力可能なコンボボックスの値を取得したい。
ドロップダウンで選択した値を取得する事は出来た。
手入力した値を取得するのはどうすればいいのでしょうか?
https://i.imgur.com/Xh6vU1X.jpg

791デフォルトの名無しさん (ワッチョイ 2175-xOks)2018/02/25(日) 21:04:14.02ID:ky9/2g4Z0
ググったら
selecteditem.tostring()でやってるのが多いけどそれだとどうなの?

792デフォルトの名無しさん (ワッチョイ 539f-CyJp)2018/02/25(日) 21:29:08.12ID:vwrCxs9l0
>>791
こうですか?
if (comboBox.SelectedItem != null)
//cb = ((ComboBoxItem)comboBox.SelectedItem).Content.ToString();
cb = comboBox.SelectedItem.ToString();
else
//comboBox.SelectedIndex = -1;
cb = comboBox.Text
}

値の前にこんな文字も取得してしまいす
System.Windows.Controls.ComboBoxItem:

if〜で選択した値は取得できてます。
else〜で手入力した値を取得したいのですがうまくいきません。

>>790
何が聞きたいのかもっと明確にしないと誰も答えようがないと思うw

説明が下手なら(たぶんそうだと思うがw)人に冗長だと思われることをいとわず
くどくど馬鹿丁寧に書いて

794デフォルトの名無しさん (ワッチョイ f6fa-ZcLG)2018/02/25(日) 21:57:50.75ID:E3f9DkoA0
編集可能コンボボックスを編集してSelectionChangedイベント発生するか?

795デフォルトの名無しさん (ワッチョイ 0cb3-UG62)2018/02/25(日) 22:21:01.20ID:kwOkeHWk0
>>792
cb = comboBox.Text
これだけで良くない?
if elseで分岐させる意味よく分からない

796デフォルトの名無しさん (ワッチョイ 7e7f-bhM0)2018/02/25(日) 22:23:56.77ID:IwpMQIZw0
>>794
しないね。

>>790
KeyUpイベントでComboBoxのTextプロパティを読めば良い。

797デフォルトの名無しさん (ワッチョイ c4e3-o9L9)2018/02/25(日) 22:25:29.96ID:r9nYZ4dr0
killfocus的なイベントで取得しねーとあれっしょ?

798デフォルトの名無しさん (ワッチョイ 0cb3-UG62)2018/02/25(日) 22:37:52.36ID:kwOkeHWk0
ValidatedとかTextChangedとか

799デフォルトの名無しさん (ワッチョイ 539f-CyJp)2018/02/25(日) 22:45:14.31ID:vwrCxs9l0
>>795
そうすると、値を手入力したときに、選択した項目の値がおかしくなるんです

800デフォルトの名無しさん (ワッチョイ 7e7f-bhM0)2018/02/25(日) 22:45:54.95ID:IwpMQIZw0
>>797
そこら辺はケースバイケースかな。

>>798
WPFみたいだから、そのイベントは無いぞ。

801デフォルトの名無しさん (ワッチョイ 539f-CyJp)2018/02/25(日) 22:48:34.92ID:vwrCxs9l0
>>798
これは駄目でした
private void comboBox_TextChanged(object sender, TextChangedEventArgs e)
{
String cb = comboBox.Text;
}

802デフォルトの名無しさん (ワッチョイ 539f-CyJp)2018/02/25(日) 22:54:38.23ID:vwrCxs9l0
>>797
調べてみます

803デフォルトの名無しさん (ワッチョイ 539f-CyJp)2018/02/25(日) 23:00:56.88ID:vwrCxs9l0
>>796
なるほど
ありがとうございます

804デフォルトの名無しさん (ワッチョイ 539f-CyJp)2018/02/25(日) 23:02:36.17ID:vwrCxs9l0
そもそもコンボボックスでリストにない値を使うやり方がおかしいんですかね?

805ヴぁr (アウアウウー Sa08-MTlB)2018/02/25(日) 23:28:03.64ID:AIuTVnPta
<ComboBox x:Name="cb" IsEditable="True" TextBoxBase.TextChanged="cb_TextChanged" />

private void cb_TextChanged(object sender, TextChangedEventArgs e)
{
var text = cb.Text;
}

806デフォルトの名無しさん (ワッチョイ 7e7f-bhM0)2018/02/25(日) 23:40:26.62ID:IwpMQIZw0
>>805
おぉ、そんな使い方が。

>>798
すまない。>>800は間違いだった。

>>805
出来ました。ありがとうございますm(_ _)m

>>807
スマホで撮った画像を上げるのはよくない
コードを貼れ

画像を貼るにしてもwindows標準のsnipping toolで必要なところだけ切り取ってアップしろ

>>808
すみません
PCでここを開けなかったもので…
画像サイズもデカすぎました
次から気をつけます

そんなしょうもないことに上から目線で偉そうにいう馬鹿に謝る必要ないのにw

811デフォルトの名無しさん (ワッチョイ 4dcc-m9q9)2018/02/26(月) 07:59:36.31ID:6yy+ByjQ0
マウントスレ

812デフォルトの名無しさん (ワッチョイ 8e81-CTWy)2018/02/26(月) 08:19:52.65ID:RRYIMw3l0
一歩引いた視点からスレを冷静に観察できる俺カッケー

813デフォルトの名無しさん (ワッチョイ 4634-A/0C)2018/02/26(月) 11:48:50.77ID:lZacsmbR0
ふらっとだからマウントしたくて堪らないんだよ

Mt.LINQ

815デフォルトの名無しさん (ワッチョイ aab3-Y1mi)2018/02/26(月) 15:59:59.36ID:0MjsGOBH0
>>812
ブーメラン刺さってんぞ

816デフォルトの名無しさん (ワッチョイ 6e8a-NvmX)2018/02/26(月) 19:30:52.07ID:dPho+2cQ0
StreamWriterでファイルの末尾へ書き込む場合、
ファイルのサイズは書き込み速度に関係しますか?

817816 (ワッチョイ 6e8a-NvmX)2018/02/26(月) 19:42:02.15ID:dPho+2cQ0
>>816
すいません、自己解決しました

818デフォルトの名無しさん (ワッチョイ 9317-x4Or)2018/02/26(月) 19:42:03.98ID:0ZOHeiQ90
しない

819デフォルトの名無しさん (ワッチョイ 6e8a-NvmX)2018/02/26(月) 19:47:14.80ID:dPho+2cQ0
>>818
回答でいいんですよね?
そのようです。ありがとうございます

820デフォルトの名無しさん (ワッチョイ c4e3-o9L9)2018/02/26(月) 20:06:12.31ID:FENePymH0
なんでだろうね?
関係しそうな気がするのに不思議だよね

逆にどんなファイルシステムなら影響が出るのかそっちの方が気になるよw

822デフォルトの名無しさん (ワッチョイ fc83-MTlB)2018/02/26(月) 20:14:11.43ID:aBQXIVru0
ただのラッパーだから分からないが正解。Streamに依存するが正解。DATならまあ遅くなるわな。

そうかな
CMTだろうが穿孔テープだろうが関係ないと思うけどw

824デフォルトの名無しさん (ワッチョイ fc83-MTlB)2018/02/26(月) 20:31:00.70ID:aBQXIVru0
これがデジタルネイティブか。恐るべし。

関係ないよw
メディアの問題というよりファイルシステムの問題

シーケンシャルにしかアクセスできないからシークが遅いとか、そもそも追記ができないとかいう話なら分かるが、
追記可能なのに書込み速度がファイルのサイズに影響するファイルシステムってちょっと思いつかん

826デフォルトの名無しさん (ワッチョイ 2175-xOks)2018/02/26(月) 21:24:17.61ID:ogwj8qdY0
屁理屈アスペ

827デフォルトの名無しさん (ワッチョイ c4e3-o9L9)2018/02/26(月) 21:43:49.74ID:FENePymH0
>>825
記憶媒体がどういう仕組みで記憶してるのかよくわからないから
メモリみたいなの想像してみた
追記に足りない領域しか空いてなかったら再確保するんじゃね?みたいな

828デフォルトの名無しさん (ワッチョイ 7c8a-Clm8)2018/02/26(月) 22:09:14.31ID:iEsMppLq0
えっdokanとかでも影響無いの。エビデンスは?

829デフォルトの名無しさん (ワッチョイ 24c3-POFq)2018/02/26(月) 22:29:50.26ID:gUsCTQbp0
業務アプリばっかりやってきて最近のトレンドに全くついていけてない老害に教えてやってほしいのですが、
●やりたいこと
WPFアプリ、SQLite(最新)を使用、EntityFrameworkで実装したい
DBはそれほど複雑でなく、せいぜい2つのテーブルをjoinする程度、あとは、各テーブルをCRUDする感じでサンプルに毛が生えたようなレベルです。

.NETのバージョンはv4.6.1とした場合、
どのパッケージを使用したらよいだろうか?が知りたいです。

参考にしたいな、と思った記事は、
https://qiita.com/massu/items/b2546a0d876e207de882#%E3%83%A2%E3%83%87%E3%83%AB%E3%81%AE%E4%BD%9C%E6%88%90

SQLiteで簡単にEFできるかな?と思ってコードを眺めていました。

だが、パッケージ名で.NET Coreを使用するように見えてしまい、
WPFで使っていいの?など何が何やら、、、

本人のバックグラウンドとしては、v3.5程度までの業務コーディング知識は
あるつもりなのですが、なかなか最近の技術、名称についていけておらず。。

最近のトレンドに乗りつつ、知識をつけつつ開発したいと思っています。
ちなみにこのアプリは業務使用ではないのです

830デフォルトの名無しさん (ワッチョイ 66c3-1PEj)2018/02/26(月) 22:49:45.69ID:38VYcXav0

>>829
まずはこの辺の誤解を
・WPFは最近のトレンドなどではなく、とっくの昔に死んだ技術である
・EFはサーバー用のオーバーヘッドが極めて大きいフレームワークであり、デスクトップアプリで使うものではない

832デフォルトの名無しさん (ワッチョイ 0cb3-UG62)2018/02/26(月) 22:54:54.35ID:368iDdw70

833デフォルトの名無しさん (ブーイモ MM5e-x7KF)2018/02/26(月) 22:59:10.38ID:DUs1D+akM
一番大きなギャップは、今の.NET界は完全にWebに傾倒していて、コミュニティの話題や新しい技術はほぼ全てWebであるということだな
デスクトップアプリなんか完全に時間止まってるから.NET 3.5の知識だけで全く問題ないよ

834デフォルトの名無しさん (ワッチョイ 66d2-+xKg)2018/02/26(月) 23:09:05.92ID:vKciEg6e0
>>831
>EFはサーバー用のオーバーヘッドが極めて大きいフレームワークであり、デスクトップアプリで使うものではない
ソース

835デフォルトの名無しさん (ワッチョイ 2c4c-sVxC)2018/02/26(月) 23:47:01.79ID:bGZXNZ9L0
WPFも死んだ技術だったのかーw

836デフォルトの名無しさん (スップ Sd02-+xKg)2018/02/26(月) 23:49:12.54ID:iwJ2EGnFd
>>831
「死んだ」の定義を
トレンドでないというのはその通りだが

837デフォルトの名無しさん (ワッチョイ 0cb3-UG62)2018/02/27(火) 00:16:09.81ID:u9k8VAiO0
>>825
抽象度の違う話だけどフラグメント化の状態によってはファイルサイズが大きくなると書き込み速度遅くなるよね?

838デフォルトの名無しさん (ワッチョイ 0e23-x4Or)2018/02/27(火) 02:10:24.09ID:99t2/tIf0
WPFが生まれた時からずっと疑問なんだが
これって覚えたほうがいい技術なのか?
すぐ主流になるだろうからそれから乗り換えようと思ってもう何年もたつんだが

839デフォルトの名無しさん (ワッチョイ 4dcc-m9q9)2018/02/27(火) 02:13:21.67ID:J8jkSyZL0
デスクトップはC#の聖域ではなくなったのだ

840デフォルトの名無しさん (ワッチョイ 26f7-qPs3)2018/02/27(火) 02:41:32.24ID:jq+LpMYA0
まぁWinFormsよりはマシじゃねえかなという感じ

841デフォルトの名無しさん (ワッチョイ d0e8-x4Or)2018/02/27(火) 05:19:22.80ID:Mxpc3vA+0
MSはFormsに回帰すべき

>>833
xamarinとかあるじゃん

843デフォルトの名無しさん (ワッチョイ 2175-xOks)2018/02/27(火) 08:05:04.96ID:zlwrDvPF0
個人的にはWinFormsのデザインのほうがすき

844デフォルトの名無しさん (ワッチョイ 1606-x4Or)2018/02/27(火) 08:16:06.30ID:8aU06ktU0
MSはhtmlとjavascriptでデスクトップアプリを作るPWAに手を出し始めた
C#自体がどうなるか不透明にになってきたね

845デフォルトの名無しさん (アウアウカー Sa0a-msg2)2018/02/27(火) 08:16:40.64ID:k/YAY/h1a
xmlでシリアライズするときに、配列のタグに番号を付与していくにはどうしたらいいのでしょうか

846デフォルトの名無しさん (スッップ Sd70-+xKg)2018/02/27(火) 08:20:43.64ID:QH+kUa8rd
>>844
それは違う

847デフォルトの名無しさん (ブーイモ MM5e-x7KF)2018/02/27(火) 08:38:03.68ID:7wWsDoA+M
>>844
なんか勘違いしてるみたいだが、PWAはWebアプリだぞ
今時ガワで何でもやるアプリなんてほとんど無くて、重要なのはWeb越しにある裏側の仕組みだ
つまり、PWAサポートするからバックエンドをVSやAzureで作ってね、ということ
そして、MSはC#を最重要なWebバックエンド開発言語として位置付けている
今更デスクトップアプリなどという時代遅れな技術を使いたくない、Web技術で全部作らせろ、というニーズは.NET開発者からも多いんだぞ?
今時C#=Winデスクトップアプリ向け、なんて言ってるのは10年遅れ

848デフォルトの名無しさん (ワッチョイ 1606-x4Or)2018/02/27(火) 11:00:10.39ID:8aU06ktU0
>>847
C#の強みは、デスクトップとwebが同じテクノロジーで構築できることだろうし
ソレが崩れたらバックエンドの代わりはいくらでもあると思うんだわ
javaでもphpでもrubyでも

>>848
今時Webできない開発者なんかいない(そうでない連中はどうせ新しい物買わないし先細りだし放っといてもMSから逃げられないから餌をやる必要がない)
MSから見ればそこに拘る意味がなくなってるんだよ
今の.NETプラットフォームはAzure含めて純粋にWebプラットフォームとしての使いやすさで勝負していて、
十分に競争力のあるものになってるし実際大成功してるよ

850デフォルトの名無しさん (ワッチョイ 26eb-g0eH)2018/02/27(火) 11:49:37.57ID:/SsV5BVS0
見様見真似で勉強始めたばかりの初心者です
以下の記述でerror CS0234が出まして、ここから学習が進んでません

class test001:System.Windows.Forms.Form
{
static void Main()
{
System.Windows.Forms.Application.Run(new test001());
}
}
スクショttps://dotup.org/uploda/dotup.org1474023.jpg.html
各単語の意味もわかってませんが、
空のウィンドウが表示されるだけのソースのつもりで書いてます

1.基本的にこの記述は間違っているのか
2.error CS0234の対処法ググるとVisual Basicの設定方法がヒットするんですが、
メモ帳とコマンドプロンプトで制作してる者としてはどう対処すべきか
(取り急ぎ開発環境導入しますが、メモ帳だけでやってる方もいるらしいので)

以上2点ご教示願います

851デフォルトの名無しさん (ワッチョイ f0ea-je3A)2018/02/27(火) 11:58:10.40ID:p2sOgdSs0
>>850
どんな環境で何を見て始めたのか知らないけども、
VSならプロジェクト作成から「Windows フォーム アプリケーション」を選んで実行すれば、
空のウィンドウが表示される
初心者ならコマンドプロンプトで作らなくていいんじゃね?

>>850
初心者がIDE入れないでやるのは自殺行為
自称上級者でもメモ帳ではまあまともにアプリなんて作れない

IDE入れる
本を買って来て手順を踏む

5年たったらメモ帳でアプリ製作に挑戦

853デフォルトの名無しさん (スップ Sd00-m9q9)2018/02/27(火) 12:11:38.67ID:XgxJnBY2d
社員なのか信者なのか気持ち悪い奴いるな

c#はどの場面でもメインにはなれないけど隙間隙間でやっていくだろう

855デフォルトの名無しさん (ワッチョイ e206-MTlB)2018/02/27(火) 12:47:38.51ID:SDSkuy0K0
>>850
おそらくSystem.Windows.Forms.dllへの参照が埋め込まれていないんじゃないかと
うちの環境だとIDE入ってるせいかSystem.Windows.Forms.dllへの参照は勝手に入るが

コンパイルエラーコードはこの辺りに纏まっている
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/compiler-messages/CS0234
といってもVSはVSでエラーコードに関してヘルプをBingで検索しだす奇天烈仕様

856デフォルトの名無しさん (ブーイモ MM5a-YW4B)2018/02/27(火) 12:59:05.87ID:rBu0KqL2M
azureの知識とかどうやってつければええのですん?

857850 (ワッチョイ 26eb-g0eH)2018/02/27(火) 13:36:31.89ID:/SsV5BVS0
回答ありがとうございます
実際の対策としてVS導入はするつもりですが、

知識欲として、参照が埋め込まれていない状態をIDE介さずに解消するのは難しいのでしょうか?

858デフォルトの名無しさん (ワッチョイ 0cb3-Q9O4)2018/02/27(火) 13:54:26.80ID:u9k8VAiO0
>>857
コンパイラスイッチで参照追加すればいいよ

859デフォルトの名無しさん (ワッチョイ e206-MTlB)2018/02/27(火) 13:56:12.87ID:SDSkuy0K0
>>857
URLの/reference (メタデータのインポート)は読んだ?より具体的なら↓のとか

ソース ファイルが格納されているディレクトリで次のコマンドを実行します
https://docs.microsoft.com/ja-jp/dotnet/framework/winforms/controls/how-to-develop-a-simple-windows-forms-control

https://docs.microsoft.com/ja-jp/dotnet/framework/winforms/how-to-create-a-windows-forms-application-from-the-command-line
こちらだとcscにはライブラリの指定がないね、IDEというよりSDKやTargeting Packの設定なのかもしれん

>>848
> javaでもphpでもrubyでも
よりによってなんでそんなアホな選択肢なんだよ w

861デフォルトの名無しさん (ワッチョイ fc83-MTlB)2018/02/27(火) 19:43:00.51ID:CzY5WQW+0
> 今時Webできない開発者なんかいない

Webやってるのって少数派じゃねーの。使い捨て技術者のイメージ。

862デフォルトの名無しさん (ワッチョイ c4e3-o9L9)2018/02/27(火) 19:43:04.42ID:IhRJXR1o0
>>857
ビルドも通らない人間が気にするこっちゃないよ

>>861
そんなことはないでしょ。

でも、ドリーマーが多いのは確かだと思う。
なにせ20年ずっと「UIはHTMLの時代になる」って言い続けてるんだからw

864デフォルトの名無しさん (ワッチョイ 2175-42by)2018/02/27(火) 20:08:50.02ID:zlwrDvPF0
>>857
csc test.cs -r:System.Windows.Forms.Dll
でもできない?

でも正直なところ一般人の目に付く範囲のアプリってoffice除いたら
大体htmlで構成されてるものが多いんじゃないか
そうじゃなくてもネットワークがないと何も始まらない

866デフォルトの名無しさん (ワッチョイ fc83-MTlB)2018/02/27(火) 20:31:45.68ID:CzY5WQW+0
WEB技術なんか追いかけてたら廃人になると思う

フレームワークが使い捨てだもんな

867デフォルトの名無しさん (ワッチョイ f41e-a/z7)2018/02/27(火) 20:44:37.33ID:Ee9DX7nT0
Webの特にフロントエンドはひどすぎるな。JavaScript。
生産性の低い道具を使って仕事たくさん生み出そうってことなんだろう。
俺もReactだけは勉強したけどさw
去年のQiitaアドベントみると去年はVue.jsだったのか?ww
アホすぎ

868デフォルトの名無しさん (ワッチョイ 2175-xOks)2018/02/27(火) 20:58:24.68ID:zlwrDvPF0
スレチ

業務系はレイヤー分割下手くそな初心者みたいなSE, PGばっかりだから
フロントを入れ替える=全改修みたいな悲惨な事になるから、頻繁にフロントを変えるって発想ができないんだろう
ここにはどうしても高い文明の壁があるから分かり合えることはない

870829 (ワッチョイ 24c3-4sh6)2018/02/28(水) 00:45:23.33ID:ZfoI/UP10
ちょっと流れてしまいましたか、貴重な意見ありがとうございます。
教えていただいたページで勘違いしていたところがスッキリしました。

WPF登場してから時間が立っているからか、古く感じてしまうのは仕方なしなのかな、と思う一報、クライアントアプリを扱う現場ではまだまだ全盛、WinFormも負けてられない勢いで使われているとおもいます。

また、一部、EFはサーバーサイドで…と言う意見もいただきましたが、クライアントでも、問題ないですよね、多分。
というか今回の質問としてはwebでないので3層は意識せず、でもUIとロジックの分離、その先の責務の分離を考えると、良い方法かな、と思いますが…じゃあEF使わないんだったら、どうしよう、constでクエリ定義してDataAdapterにぶっ込む…なんてしたくなかったですし。。。

もう少し調査は必要かもですが、ちょっとやってみたいと思います。

871デフォルトの名無しさん (ワッチョイ 709d-saxG)2018/02/28(水) 03:45:22.69ID:Tpz3pZ6h0
>ここにはどうしても高い文明の壁があるから分かり合えることはない
例えばどんなところが「高い壁」といえるんだ?

872デフォルトの名無しさん (ワッチョイ fc83-MTlB)2018/02/28(水) 04:03:44.27ID:XB4appM30
アセンブラの理解を必要される世界は土人の世界と言える。

873デフォルトの名無しさん (ワッチョイ 709d-saxG)2018/02/28(水) 08:03:55.13ID:Tpz3pZ6h0
高いか低いかそれすらわからない。要するに何もわからないという壁だな。w

874デフォルトの名無しさん (ワッチョイ 4dcc-m9q9)2018/02/28(水) 08:05:35.45ID:H5g0lJOW0
本人にとっては高い壁なんだから放っておいてあげなよ

875デフォルトの名無しさん (ワッチョイ f0ea-je3A)2018/02/28(水) 14:53:55.71ID:oNcgzutM0
アセンブラの理解ってか、論理回路を理解するかどうかじゃね?
ちょこっと弱電をかじれば、なんとなく理解出来ると思うけども

876デフォルトの名無しさん (ワッチョイ 9c03-07Zo)2018/02/28(水) 22:27:40.29ID:6WnrRHIY0
>>875
おまえがなんとなく理解出来るんなら大体の人は正確に理解できんじゃね?

877デフォルトの名無しさん (ワッチョイ 1606-x4Or)2018/02/28(水) 23:59:37.37ID:z3mkUJ010
アセンブラは何とか成るけど、そのまま16進数打っていた奴には敵わんかったわw
いくら8ビットで命令少ないからって常人が出来るものじゃない

878デフォルトの名無しさん (ワッチョイ 0706-lEE9)2018/03/01(木) 02:02:49.70ID:kBOyQt430
>>876
ソフトの原理を理解していれば、
電気回路も大体理解出来るよ。

879デフォルトの名無しさん (ワッチョイ 078a-Jyeh)2018/03/01(木) 04:04:04.41ID:3FYR9rwV0
>>877
CD 21
CC
C3

880 ◆QZaw55cn4c (ワッチョイ df60-k3ZN)2018/03/01(木) 04:20:33.41ID:afku3ABs0
>>877
こういう話で 8086 のバイトコードを丸暗記していたという話はきいたことがないね

881デフォルトの名無しさん (ワッチョイ 4706-m1UI)2018/03/01(木) 08:22:59.92ID:8YSrTbQO0
>>880
Z80はアドレッシング・モードが簡素なので、手計算でジャンプ先の数字セットできるけど
68とか86辺りになると人の手に負えないからね

882デフォルトの名無しさん (ワッチョイ 078a-Jyeh)2018/03/01(木) 10:14:54.05ID:3FYR9rwV0
8進数で覚えれば何とかなるけどね

883デフォルトの名無しさん (ワッチョイ 6775-LhZF)2018/03/01(木) 13:33:07.63ID:6vJouTff0
スレチ

884デフォルトの名無しさん (スップ Sd7f-8Tjf)2018/03/01(木) 16:02:04.47ID:nTTdbTAFd
>>877
命令が少ない上に、規則があるから簡単だよ。
それより、2、30人の家の電話番号覚えてた方が驚異的。今はもう絶対無理w

885デフォルトの名無しさん (ワッチョイ df9d-wl/W)2018/03/01(木) 19:58:55.12ID:AzZlAoZA0
te

886デフォルトの名無しさん (ワッチョイ df9d-wl/W)2018/03/01(木) 20:03:50.95ID:AzZlAoZA0
Task taskA = Task.Run(async () => {
int count = 60;//6sec
while (count-- > 0) {
Debug.Print("sw0:" + sw.ElapsedMilliseconds.ToString());
await Task.Delay(100);
Debug.Print("sw1:" + sw.ElapsedMilliseconds.ToString());
}
} );
taskA.Wait(5000);
5秒で一旦止まるように見えるが、暫くするとまたタスクは回り始める。C#バグかよ。

887デフォルトの名無しさん (ワッチョイ df9d-wl/W)2018/03/01(木) 20:10:43.58ID:AzZlAoZA0
しかもUIは5秒間止まってしまう。TASKの意味ないよ。書き方を間違ってるんだろうか?

888デフォルトの名無しさん (ワッチョイ 47cc-MIKN)2018/03/01(木) 20:23:11.20ID:q/FX+WiY0
親スレが先に終わってるだけでは?

889デフォルトの名無しさん (ワッチョイ 47cc-MIKN)2018/03/01(木) 20:33:24.41ID:q/FX+WiY0
ちなみUIを止めたくなければtaskAをawaitすれば良いはず

890デフォルトの名無しさん (ワッチョイ df06-k3ZN)2018/03/01(木) 20:34:30.22ID:quAhlzft0
>>886-887
何だか良く分からないけど、どうみても6秒以上掛かるコードだし
Wait()はタイムアウトしても終了させないし、待機時間ブロックする
UIスレッドでしたら固まるし、awaitは解放したいスレッドで使う物だよ

891デフォルトの名無しさん (ブーイモ MM4b-k3ZN)2018/03/01(木) 20:36:05.85ID:6F6TcS9xM
>>886
思い違い

WaitでGUIのスレッドを使って待機してるのでGUIはその間動かない
5秒たつと待つのをやめてそのまま進む

そのtaskはタイムアウトでは止まる用には設計されてない

892デフォルトの名無しさん (ワッチョイ df9d-wl/W)2018/03/01(木) 20:37:12.88ID:AzZlAoZA0
>>888
上はFormに貼り付けたボタンイベントで実行してるだけ。それなのにボタンを押したら
5秒間フォームが固まる。w

893デフォルトの名無しさん (ブーイモ MM4b-k3ZN)2018/03/01(木) 20:39:22.48ID:6F6TcS9xM
>>892
それは正しい動作だよ

894デフォルトの名無しさん (ワッチョイ 47cc-MIKN)2018/03/01(木) 20:41:57.81ID:q/FX+WiY0
次はasync voidで定義してなくてエラーになる質問が来ると見た

895デフォルトの名無しさん (ワッチョイ df9d-wl/W)2018/03/01(木) 20:44:04.03ID:AzZlAoZA0
>>891
 サンプル見て書いたつもりだったが、間違いでしたか?
Asyncが非同期処理を宣言するような機能で、Awaitは解放するスレッドに付けるのだから、Task.Delay(100)を
解放してUIに戻す.つまり100msec待ちながらもUIに制御を戻すってことではないのか?

896デフォルトの名無しさん (ブーイモ MM4b-k3ZN)2018/03/01(木) 20:44:33.47ID:6F6TcS9xM
>>895
思い違い

897デフォルトの名無しさん (ワッチョイ e796-EQhT)2018/03/01(木) 20:47:14.71ID:CGoXJwt80
こんなサンプルどこにあったんだよ
冗談キツいぞ

898デフォルトの名無しさん (ワッチョイ 47cc-MIKN)2018/03/01(木) 20:50:53.25ID:q/FX+WiY0
>>895
UI止めたくなければこうやで
taskA.Wait(5000); ⇨ await taskA;

899デフォルトの名無しさん (ワッチョイ df06-k3ZN)2018/03/01(木) 20:52:01.74ID:quAhlzft0
>>895
Taskはスケジューラを指定しない限りワーカースレッドで動くよ
その非同期ラムダでawaitしてもワーカースレッドが解放されてるだけ
UIスレッドで非同期待機するなら作成側を非同期メソッドにしてawaitする

900デフォルトの名無しさん (ワッチョイ 7fc9-m1UI)2018/03/01(木) 20:54:52.06ID:nTP7Re4I0
await/asyncはネットに碌な例がないからしゃーないわな

間違った理解

awaitがあるとUIに制御を戻す
awaitがあるメソッドに出会うとUIはその場で対象のメソッドの終了を待つ

2番目が特に誤解を招きやすい

902デフォルトの名無しさん (ワッチョイ df9d-wl/W)2018/03/01(木) 20:59:14.26ID:AzZlAoZA0
>WaitでGUIのスレッドを使って待機してるのでGUIはその間動かない
>5秒たつと待つのをやめてそのまま進む

 GUIのスレッドを使って待つの当然でしょ。それが目的だから。だめなの?
じゃあどこで待てばいいのだ? 

void ボタン_Click(){
TaskAを実行(起動);
TaskAの完了を待();
}
処理の流れはこうだけど、これは駄目ってこと? じゃあどうするの?
void ボタン_Click(){
TaskAを実行(起動);
}
どっか別のところで、例えばタイマー割り込みで
TaskAの完了を待();
ってことか? 流れがわかり難いので不細工だよな。「シーケンシャルに流れを書いて且つUIが
止まらない」というようになってないと駄目だろ。

ちょっと語弊があるな

間違った理解

awaitがあるとUIに制御を戻す
awaitがついたメソッドに出会うとUIはその場で対象のメソッドの終了を待つ

2番目が特に誤解を招きやすい

>>902
やっぱり君か
間違ってるのは自分なのに文句ばかりだな

905デフォルトの名無しさん (ブーイモ MM4b-k3ZN)2018/03/01(木) 21:05:15.82ID:6F6TcS9xM
>>902
>GUIのスレッドを使って待つの当然でしょ

違うね
GUIのスレッドを戻してあげないとGUIは他の仕事ができない

906デフォルトの名無しさん (ワッチョイ 47cc-MIKN)2018/03/01(木) 21:06:34.94ID:q/FX+WiY0
winformsで非同期やってた時、デバッグとリリースで動作が違くてはまったなぁ
CheckForIllegalCrossThreadCallsは絶対に許さない

907デフォルトの名無しさん (ワッチョイ e796-EQhT)2018/03/01(木) 21:06:49.07ID:CGoXJwt80
ああ前にもいた奴?もう辞めればいいのに

908デフォルトの名無しさん (ブーイモ MM4b-k3ZN)2018/03/01(木) 21:09:05.97ID:6F6TcS9xM
>>906
確かそれ挙動は同じなんだけどデバッグ時はIDEかなにかにスレッド渡す奴だっけ?

909デフォルトの名無しさん (ワッチョイ df06-k3ZN)2018/03/01(木) 21:18:31.12ID:quAhlzft0
>>902
いやだから…そのWait()の代わりにawaitをUIメソッドに書くんでしょうが…
そうすれば一旦スレッド制御を返し、Taskが終われば取り戻し再開してくれる

レガシーな書き方だってTaskScheduler.FromCurrentSynchronizationContext()を指定して
ContinueWith()すれば良いし、UIコンテキスト取得しといてワーカースレッドから投げても良い

910デフォルトの名無しさん (ワッチョイ 47cc-MIKN)2018/03/01(木) 21:20:57.83ID:q/FX+WiY0
>>908
こいつをTrueにしないと別スレからUI触った時に例外を吐いてくれなかったはず。デバッグで動かしてるか否かで初期設定が変わる。
だいぶ昔だから間違ってたらゴメンね。

911デフォルトの名無しさん (ワッチョイ df9d-wl/W)2018/03/01(木) 21:23:58.40ID:AzZlAoZA0
>Taskはスケジューラを指定しない限りワーカースレッドで動くよ
>その非同期ラムダでawaitしてもワーカースレッドが解放されてるだけ
>UIスレッドで非同期待機するなら作成側を非同期メソッドにしてawaitする

言ってることの意味がわからない。Async()=>{}にしてるでしょ。
しかもこのラムダはRunが確保したスレッドプールで動作してるんでしょ。意味的にそうでないと
可笑しい。でラムダのその中でawaitしてるんだから、、、、って
UIスレでボタン受付
    スレ4000でラムダ起動
             AWAITでスレ4001にスイッチして100msec待つ
    100msec完了でスレ4000に戻る。
    スレ4000でループ
Task.Wait(3000)はUIスレでスレ4000の終了を待ってる。
ここで待ってる限りUIは止まるってことね。
そういう意味か? 何となく解った。

912デフォルトの名無しさん (ワッチョイ 47cc-MIKN)2018/03/01(木) 21:25:07.02ID:q/FX+WiY0
まぁ別スレからUI触るなクソ野郎と言われればその通りなので、当時の俺が悪かったのは間違いないのだが。

913デフォルトの名無しさん (ワッチョイ df9d-wl/W)2018/03/01(木) 21:26:35.19ID:AzZlAoZA0
>いやだから…そのWait()の代わりにawaitをUIメソッドに書くんでしょうが…
そういうことね。解り申した。

914デフォルトの名無しさん (ワッチョイ 47cc-MIKN)2018/03/01(木) 21:41:01.61ID:q/FX+WiY0
ちなみに非同期の勉強ならasync/awaitよりも
生threadから始めた方が良いと思うんですが?

915デフォルトの名無しさん (ワッチョイ dfd2-QDoW)2018/03/01(木) 21:46:31.27ID:GOUhL4CG0
>>914
ねーよ

916デフォルトの名無しさん (ワッチョイ 47cc-MIKN)2018/03/01(木) 21:48:56.53ID:q/FX+WiY0
そっかあ(´・ω・`)

917デフォルトの名無しさん (ワッチョイ 07e3-Dwo1)2018/03/01(木) 21:54:11.39ID:CjtoGQ7P0
あんまり実践で使うことないな
基本的にスレッド必要なときってメソッド内で終わるほど準備ヌルくないし
簡単な機能使って実装すると大抵バグってる

918デフォルトの名無しさん (ワッチョイ 4706-m1UI)2018/03/01(木) 22:41:00.53ID:8YSrTbQO0
ま非同期など定形を何本か覚えたら、ソレ以上凝ったことしても大して効率上がらんのよね

919デフォルトの名無しさん (ワッチョイ 0706-lEE9)2018/03/01(木) 23:40:54.75ID:kBOyQt430
たまにはBackgroundWorkerさんのことも・・・
ううん、忘れていいw

クライアントアプリならイベントハンドラでの await Task.Run だけ覚えてそこから先は全部同期でいい
WebだとTPL Dataflowとか CancellationToken とかまで踏み込んで使いこなさないとあまり意味ないけど

921デフォルトの名無しさん (ワッチョイ 7fc9-m1UI)2018/03/02(金) 00:00:26.72ID:Gwpj8bix0
>>920
>そこから先は全部同期でいい
は下手に非同期使うと不味いことあるの?

>>921
そもそも勘違いしてるみたいだが、asyncはオーバーヘッドが大きいから一般にはなるべく使わないほうがいい。
じゃあWebではなぜ逆に非同期を全面的に積極的に使うかというと、
多数のリクエストを同時に処理するときのスレッドプールの消費を抑えることでメモリ使用量を低減できるから。
クライアントアプリなんか必ず同時に一人しか使わないんだから、UIのイベントの度にRunしても全く問題にならない。

それは独自研究の独自理論でしかないだろう

>>923
まずはこの辺を読んで勉強しようか
https://msdn.microsoft.com/ja-jp/magazine/dn802603.aspx

>asyncはオーバーヘッドが大きいから一般にはなるべく使わないほうがいい。

これが独自研究の独自理論

926デフォルトの名無しさん (ブーイモ MMcf-dKqy)2018/03/02(金) 00:27:57.99ID:RRk6A7H1M

927デフォルトの名無しさん (ワッチョイ 47cc-MIKN)2018/03/02(金) 00:29:15.66ID:k6O24zwX0
個人的には非同期IOのシナリオの場合ならクライアントでも積極的に非同期使うようにしてるにゃ

普通はそうだろ

929デフォルトの名無しさん (ワッチョイ 07e3-Dwo1)2018/03/02(金) 00:32:45.87ID:ORIKCzBj0
そもそもなぜ非同期なんかにしたいのか?
すっげー不具合増えそうだしぶっちゃけやるんじゃねーよ
ぶっころ

930デフォルトの名無しさん (ワッチョイ ff7f-9act)2018/03/02(金) 00:36:23.51ID:biZ1zUn80
>>926
> 結論 – 非常に短いメソッドにasync/awaitを使うことを避ける、あるいはきついループ内でawaitステートメントを持つことをを避ける
使い所を間違えるなとしか書いて無い。
「一般にはなるべく使わないほうがいい」とか、曲解だよ。

>>930
じゃあ言い換えようか?
複雑になる、オーバーヘッドが増える、それをペイするだけのメリットはない。
GUIをブロックしないという超重大な目的さえ達成できれば十分。

932デフォルトの名無しさん (ワッチョイ dfd2-QDoW)2018/03/02(金) 02:39:53.79ID:kefJfyuu0
>>920
クライアントアプリならREST API叩くのもごく一般的だと思うが、それも全部同期でやるのかい?

933デフォルトの名無しさん (ブーイモ MMcf-dKqy)2018/03/02(金) 03:52:57.49ID:QlU5Q+B8M
>>932
理解してないのは君だけ
イベントハンドラでだけawait Task.Runしてその中は全部同期でやれって話だぞ

934デフォルトの名無しさん (ワッチョイ dfd2-QDoW)2018/03/02(金) 04:11:03.94ID:kefJfyuu0
>>933
ねーよwww

935デフォルトの名無しさん (ワッチョイ df9d-wl/W)2018/03/02(金) 04:58:14.52ID:IwZ3DIkv0

936デフォルトの名無しさん (ワッチョイ df9d-wl/W)2018/03/02(金) 05:58:54.00ID:IwZ3DIkv0
var cant = new System.Threading.CancellationTokenSource();//なんじゃこれは?
Task taskA = Task.Run(async () => {
int count = 60;//6sec
while (count-- > 0) {
 〜処理
 cant.Token.ThrowIfCancellationRequested();//例外発生
}
}, cant.Token );
何じゃらほい? 大したことできんのにたいそうな名前を付けやがって笑える。普通にflg使ったらいいだけだろ。

937デフォルトの名無しさん (ワッチョイ 7f81-EQhT)2018/03/02(金) 08:09:20.83ID:XunmkkLx0
相変わらずの浅はかさだ
1mmも成長していない

938デフォルトの名無しさん (ブーイモ MMcf-dKqy)2018/03/02(金) 09:21:22.43ID:QlU5Q+B8M
>>934
何が面白いのか知らないけど、同期でREST APIを呼ぶケースなんて普通にあるぞ

>>936
正しい非同期メソッドは必ずCancellationTokenを引数として受け取る
そして、非同期メソッドからさらに別の非同期メソッドを呼ぶときには引数にcantを渡す
そうやって共通のCancellationTokenを引き回すことで、別の非同期メソッドを呼んでる間でも待機状態を確実にキャンセルできる
同期ならabortすりゃいいだけだけどね

939デフォルトの名無しさん (ワッチョイ df9d-wl/W)2018/03/02(金) 12:17:26.88ID:IwZ3DIkv0
>>938
すいません。笑えませんでした。

940デフォルトの名無しさん (スップ Sd7f-MIKN)2018/03/02(金) 12:27:24.77ID:4zkyzZ2fd
ふふってなった

941デフォルトの名無しさん (スッップ Sdff-QDoW)2018/03/02(金) 12:41:04.31ID:Ej2mk6Y7d
>>938
日本語

942(ワッチョイ df9d-wl/W)2018/03/02(金) 13:28:13.40ID:IwZ3DIkv0
これってどういう意味があるの?単純にフラグを叩けばいいだけだろ。大して利点があるようには思えんが?
ManualResetEventの代わりにflg=Flseで初期化しておいて、setのところでflg=trueにして、
while(!flg);で待機したらいいだけではないのか?

var waitHandle = new ManualResetEvent(false);
Task.Run(() => {Thread.Sleep(2000);  waitHandle.Set(); });
 Console.WriteLine("Wait");
waitHandle.WaitOne(Timeout.Infinite);

943デフォルトの名無しさん (ワッチョイ df06-k3ZN)2018/03/02(金) 14:13:57.43ID:rvZjiwte0
>>942
もはやWin32絡むし煩わしいので、ドキュメントでも読んどってください
https://msdn.microsoft.com/library/cc429052
https://docs.microsoft.com/dotnet/standard/threading/manualresetevent-and-manualreseteventslim

944デフォルトの名無しさん (ワッチョイ df9d-wl/W)2018/03/02(金) 15:56:09.38ID:IwZ3DIkv0
100msecのタイマー割り込みの中でこういうのを順番に実行する。
void timer1(){
switch( state){
case 0:
if( do1() ){state++;}; break;
case 1:
if( do2() ){state++}; break;
case 2:
if( do2() ){state=0}; break;
}
}
何かもっとスマートな書き方はないか?

945デフォルトの名無しさん (ワッチョイ dfc3-mqjH)2018/03/02(金) 16:01:28.48ID:MD67uZj00
デリゲート配列ってのもありますが、賛否両論です。

946デフォルトの名無しさん (ワッチョイ dfc3-mqjH)2018/03/02(金) 16:10:39.54ID:MD67uZj00
stateがマジックナンバー感があるので、配列よりDictionaryクラスっても、

でも賛否両論です。

947デフォルトの名無しさん (ワッチョイ df9d-wl/W)2018/03/02(金) 16:57:54.42ID:IwZ3DIkv0
Stateを使いたくない。
while(1){
while(!do1()){ wait(100);}
while(!do2()){ wait(100);}
while(!do3()){ wait(100);}
}
こんな感じでなんかいい書き方は?

948デフォルトの名無しさん (ワッチョイ 07e3-Dwo1)2018/03/02(金) 17:11:36.53ID:ORIKCzBj0
>>944
state++;
if(state>2)state=0;
ってやればスマートにならね?

>>947
doの処理ステップによって遅延がでてこない?

950デフォルトの名無しさん (ワッチョイ df9d-wl/W)2018/03/02(金) 18:21:47.40ID:IwZ3DIkv0
>>949
 遅延は無視できるレベル。
>>948
 ならない。というかStateは使いたくない。

>>944
ネタっぽい質問だけどこんなのでも作るとか

public class RoundRobin
{
  int index = 0;

  RoundRobin(params Action[] jobs)
  {
    if (jobs == null || jobs.Length == 0) jobs = new Action[] { () => { } };
    this.Jobs = new ReadOnlyCollection<Action>(jobs);
  }

  public ReadOnlyCollection<Action> Jobs { get; private set; }

  public void DoNext()
  {
    Jobs[index]();
    index = ++index % Jobs.Count;
  }
}

余談だけど、組み込みか何かの人?
タイマー割り込みてw

952デフォルトの名無しさん (ワッチョイ 0783-k3ZN)2018/03/02(金) 18:30:28.03ID:+QaGy5B+0
どんどんソースが長くなる不思議。タイマー割り込みを馬鹿にしてるからだな。

953デフォルトの名無しさん (ワッチョイ 07e3-Dwo1)2018/03/02(金) 18:31:43.84ID:ORIKCzBj0
まあ、動いてるならスマートにする必要ってないよな
普通に記述してそれがイモっぽいなら
そりゃ言語がイモなんでしょうがないんだよ

954デフォルトの名無しさん (ワッチョイ 078a-Jyeh)2018/03/02(金) 18:37:23.64ID:Ht5IxdGD0
>>944
マルチキャスティングデリゲートは?

955デフォルトの名無しさん (ワッチョイ 0783-k3ZN)2018/03/02(金) 18:37:24.20ID:+QaGy5B+0
stateいらないとか、テストやデバッグするときstateが分からなくなるのに。
マルチスレッドや同期を書かせたらいけない人。

956デフォルトの名無しさん (ワッチョイ df9d-wl/W)2018/03/02(金) 18:46:01.75ID:IwZ3DIkv0
Timer1のなかにステートマシンつくったらなんでもできるけど、わかり難いだろ。
フローチャートのように上から下へ自然に流れる方がいい。

957デフォルトの名無しさん (スッップ Sdff-QDoW)2018/03/02(金) 18:48:03.88ID:Ej2mk6Y7d
おじいちゃんか

958デフォルトの名無しさん (ワッチョイ df9d-wl/W)2018/03/02(金) 18:50:30.27ID:IwZ3DIkv0
>>952
var cts = new CancellationTokenSource();
Task.WhenAll(
Task.Run(() => EventLoop(cts)),
TimerLoop(cts.Token)
).Wait();
こういう書き方を見るにつけ、なにかいい方法はないかとつらつらと考えてる。

あとはこんなの
IEnumerable<Action> JobSequece()
{
  while (true)
  {
    yield return () => { ... };
    yield return () => { ... };
    ....
  }
}

async Task RoundRobin()
{
  foreach(var j in JobSequece())
  {
    await Task.Run(() =>Thread.Sleep(100));
    j();
  }
}

タイマー割り込みって言葉使うのはHW直接いじる超低水準のコード書いてる人か
80年代マイコン少年のおじさんだろうねw

>>958
WhenAllをよく使う人はTPL Dataflowを覚えたほうがいい

961デフォルトの名無しさん (ワッチョイ df9d-wl/W)2018/03/02(金) 19:02:23.48ID:IwZ3DIkv0
C++ならTimer割り込みって言葉は普通につかうぜよ。

962デフォルトの名無しさん (ワッチョイ dfd2-QDoW)2018/03/02(金) 19:43:53.86ID:kefJfyuu0
>>961
c#スレやでここ

963デフォルトの名無しさん (ワッチョイ 0781-cszp)2018/03/02(金) 19:48:25.47ID:uaCZv/NI0
重大インシデント発生させそうな輩ばっかやな。

964デフォルトの名無しさん (ワッチョイ 7fc9-m1UI)2018/03/02(金) 21:11:38.83ID:Gwpj8bix0
>>960
TPL Dataflow便利そうやね

965デフォルトの名無しさん (ワッチョイ 87d2-Vmra)2018/03/03(土) 00:37:31.41ID:wLcwZl2a0
本を読みながらUnityでC#を勉強しているのですが・・・
それぞれのコードの最後の行にあるnewは何をしているのか教えて下さい。

public class ArrowGenerator : MonoBehavior {
public GameObject arrowPrefab;
float span = 1,0f;
float delta = 0;

void Update()
this.delta > this.span) {
GameObject go = Instantiate(arrowPrefab) as GameObject:
int px = Random.Range(-6, 7);
go,tansform.positon = new Vector3(px, 7, 0);
}
}
}

他にも

public class IgaguriController : MonoBehavior {
public void Shoot(Vector3 dir) {
GetComponent<Rigidbody>().AddForce(dir);
}

void Start() {
Shoot(new Vector3(0, 200, 3000));
}
}

長いので分割します。すみません。

966965 (ワッチョイ 87d2-Vmra)2018/03/03(土) 00:38:39.14ID:wLcwZl2a0
それぞれ最後の行の、
go,tansform.positon = new Vector3(px, 7, 0);
Shoot(new Vector3(0, 200, 3000));

このnew演算子?は何をしているのでしょうか?
それぞれVector3というメソッドが直後のカッコの中の引数を渡していると思うのですが
その手前のnewが何なのかわかりません
クラスをインスタンスにするときに使用するnewとは若干形が違いますよね
いくら調べてもこの形のタイプのnewが出てこなくて・・・。

どなたか宜しくお願いします・・・。

967965 (ワッチョイ 87d2-Vmra)2018/03/03(土) 00:41:09.07ID:wLcwZl2a0
ああ・・・空白が埋まってしまっていてとても見づらいですね
本当にすみません

968デフォルトの名無しさん (ワッチョイ 07d3-m1UI)2018/03/03(土) 00:55:45.51ID:FSjtVpQl0
値型のnewだから意味は違うけど形は一緒やろ

969デフォルトの名無しさん (ワッチョイ 07e3-Dwo1)2018/03/03(土) 01:03:49.08ID:SBEkwl3H0
>>966
いや、見た通りやよ
Vector3クラスのインスタンスを作成しつつ代入しとるんや

970デフォルトの名無しさん (ワッチョイ dfb3-jrZP)2018/03/03(土) 01:15:14.08ID:gHPIEkfR0
Vector3(x,y,z)はコンストラクタだよ
だからnewを付けて呼び出す
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/using-constructors

基本文法をどっかで学んでからのほうがいいんでないかい?

971965 (ワッチョイ 87d2-Vmra)2018/03/03(土) 01:34:37.27ID:wLcwZl2a0
メソッドではなくクラスですね。

newは
クラス名 変数 = new クラス名()
の形しか見たことなくて・・・

上は
Vector3 go,tansform.positon = new Vector3(px, 7, 0);
という風に頭にもVector3 を付けないのですか?

下は
Shoot(Vector3 ABC = new Vector3(0, 200, 3000));
といった風に、ABCの様な変数は表記しないで、クラス名にnewを添えただけでも
クラスをインスタンス化できるのでしょうか?

>>970
一応、上のは入門書に書いてあるコードなのですよね
入門書が不親切なのか私に応用力がないのか・・・後者っぽいですね
他の入門書も調べて買ってみます

972デフォルトの名無しさん (ワッチョイ 0783-k3ZN)2018/03/03(土) 01:40:19.42ID:L5H5D1W/0
C#は糞だから初心者が混乱するのも無理はない。

973デフォルトの名無しさん (ワッチョイ dfd2-YBR1)2018/03/03(土) 02:15:20.99ID:kXsLgfSK0
コードを形で覚えてるのかなぁ
式という概念は分かるかな?

974デフォルトの名無しさん (ワッチョイ df06-k3ZN)2018/03/03(土) 02:45:02.94ID:jgGrGcb50
>>971
コードがタイポってる気がするが、上はフィールドへの代入だから
TransformクラスでpositionはVector3Dであると既に定義されている
下はコードにメソッド定義も含まれていて仮引数の型が書いてあるよね

変数宣言の型指定であって、インスタンス化には代入を伴う制約はない
未初期化の変数は参照できないから殆どは宣言時に代入もされるけど
それぞれの字句に切り分けて意味を把握しないと歪んだ理解になります

975965 (ワッチョイ 87d2-Vmra)2018/03/03(土) 07:33:03.46ID:wLcwZl2a0
>>974
とても詳しく教えて頂きありがとうございます
そういうことなのですね・・・やっと少し理解できました

意味を捉えようとは思って勉強していたのですが形で覚えていたんですね
1単語?ずつ意味を捉える様に意識してみます
皆さん変な質問にお答え頂きありがとうございました!

976デフォルトの名無しさん (ワッチョイ 6775-LhZF)2018/03/03(土) 08:22:24.39ID:kknO3Mli0
Vector3 vec; 変数定義
vec = new Vector3(1,3,2); インスタンス生成後、変数に代入

977デフォルトの名無しさん (ワッチョイ df19-4wjg)2018/03/03(土) 09:12:41.41ID:PjugdM0i0
処理の結果を返してくれるapiで、例えば
貼り付けるテキストを決める
フォント名設定
色設定
文字の大きさ設定
なと細かくapiを呼び出ししないといけない場合でも、結果を受け取る変数はやっぱり使い回ししないほうがいいですか?その変数はapi呼び出したあとエラー確認するだけです

978デフォルトの名無しさん (ワッチョイ dfc3-mqjH)2018/03/03(土) 09:16:04.27ID:+71LGCxR0
使いまわせばいーじゃない

個人的には、
異なるインスタンスなら原則使い回さない
インスタンスが同じなら使い回す

>>977
そもそも変数いらんのでは?
if (api.Foo().HasErros) return;
if (api.Bar().HasErrors) return;
...

981デフォルトの名無しさん (ワッチョイ 078a-Jyeh)2018/03/03(土) 10:35:24.42ID:/0Rk5gcF0
>>980
次スレお願い

982デフォルトの名無しさん (ワッチョイ df19-4wjg)2018/03/03(土) 10:44:16.70ID:PjugdM0i0
>>978-980
ありがとうございます。
変数を使用しない方法もありますね。ただメソッドは引数が多く、文が長くなるため悩み中です

983デフォルトの名無しさん (ワッチョイ 07b3-32Ut)2018/03/03(土) 14:40:32.75ID:9mjwXL/k0
pythonで言うデコレーターはC# のどれに辺りますか?

984デフォルトの名無しさん (ワッチョイ 07b3-32Ut)2018/03/03(土) 14:44:33.19ID:9mjwXL/k0
C# 修飾子 でググるとC++ 修飾子の記事しかHITしません。

985デフォルトの名無しさん (ブーイモ MM4b-dKqy)2018/03/03(土) 15:04:07.52ID:VVolGUCSM
属性(Attribute)
Pythonのデコレータとは違って、それ自体はメソッドに純粋にメタデータを付けるだけの機能なので、
属性を処理するにはリフレクションを駆使する必要がありクソ面倒臭い
フレームワーク作る人のための機能

986デフォルトの名無しさん (ワッチョイ 07e3-Dwo1)2018/03/03(土) 15:09:36.90ID:SBEkwl3H0
ふらっと C#,C♯,C#(初心者用) Part136
http://mevius.5ch.net/test/read.cgi/tech/1520057345/

987デフォルトの名無しさん (ワッチョイ 07b3-32Ut)2018/03/03(土) 15:25:54.77ID:9mjwXL/k0
>>985
どうも

988デフォルトの名無しさん (ワッチョイ dfb3-jrZP)2018/03/03(土) 16:48:44.55ID:gHPIEkfR0
>>980
HasErros!!!
常に真だな

989デフォルトの名無しさん (ワッチョイ df06-k3ZN)2018/03/03(土) 16:55:57.03ID:jgGrGcb50
>>983-985
デコレータ自体を実現しようとするなら厄介よね、一般的なデコレータに相当するもので良ければ
@propertyならC#プロパティがあるし、@classmethodや@classmethodならstatic修飾子で済むんだけど
実装に関わってきそうなのはデリゲートとかかな、Pythonで言えばbound/unbound methodに相当する

990デフォルトの名無しさん (ワッチョイ dfb3-jrZP)2018/03/03(土) 17:36:42.16ID:gHPIEkfR0
デコレーターをC#で実現するなら
インターフェース使って素直にパターン実装するか
横断的関心事なら属性使うかのどっちかじゃない?
使いたい目的次第

991デフォルトの名無しさん (ワッチョイ ff33-lEE9)2018/03/04(日) 02:14:29.34ID:DWVE2Vb50

992デフォルトの名無しさん (ワッチョイ ff33-lEE9)2018/03/04(日) 02:14:43.92ID:DWVE2Vb50

993デフォルトの名無しさん (ワッチョイ 6775-LhZF)2018/03/04(日) 08:15:41.15ID:J/ZR4f1P0

994デフォルトの名無しさん (ワッチョイ 6775-LhZF)2018/03/04(日) 08:16:54.70ID:J/ZR4f1P0

995デフォルトの名無しさん (ワッチョイ 6775-LhZF)2018/03/04(日) 08:17:03.97ID:J/ZR4f1P0

996デフォルトの名無しさん (ワッチョイ 6775-LhZF)2018/03/04(日) 08:18:43.29ID:J/ZR4f1P0

997デフォルトの名無しさん (ワッチョイ 6775-LhZF)2018/03/04(日) 08:18:57.30ID:J/ZR4f1P0

998デフォルトの名無しさん (ワッチョイ 6775-LhZF)2018/03/04(日) 08:21:21.48ID:J/ZR4f1P0

999デフォルトの名無しさん (ワッチョイ 6775-LhZF)2018/03/04(日) 08:24:24.96ID:J/ZR4f1P0

1000デフォルトの名無しさん (ワッチョイ 6775-LhZF)2018/03/04(日) 08:26:06.35ID:J/ZR4f1P0

10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 27日 10時間 23分 38秒

10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

レス数が1000を超えています。これ以上書き込みはできません。