◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

ふらっと C#,C♯,C#(初心者用) Part140 YouTube動画>2本 ->画像>15枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1538646998/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

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

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

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

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

2デフォルトの名無しさん (ワッチョイ e9c9-vBoO)2018/10/04(木) 23:05:26.82ID:qWTjGweS0
ネットワークやバイナリファイル編集でバイト配列操作する機会多いんだけど、何を使うのが一般的なの?
StreamにしてBinaryReaderやBinaryWriterで読み書きしてたら、バイト配列は添字使って編集するのが速いし確実とかCみたいなプログラム書くおっさんPGに言われちゃった・・・

3デフォルトの名無しさん (ワッチョイ ce9a-GiWE)2018/10/04(木) 23:23:18.76ID:qbe854ro0
>>1

>>2
用途によるし「確実」はちょっと意味がわからないけど構造体のように複数の長さのデータを格納・読込するのならそれでいいんじゃね?
1byteごととか任意のバイト長さとかファイル単位なら
https://dobon.net/vb/dotnet/file/filestream.html
でその人の言うように配列のインデックス使ってやればいいと思うし

4デフォルトの名無しさん (アウアウウー Sa83-MQj3)2018/10/04(木) 23:31:36.71ID:58olDMZFa
>>2
同じく「確実」の意図が分からないからそれは置いておいて
byte配列のほうが速いのは確か
ただしネットワーク通信やファイル入出力の所要時間と比べれば微々たる違いだろうから
先頭から順に読み書きできればいいならBinaryReader/Writerで、
ランダムアクセスしたいならbyte配列で操作すればいいと思う

StreamでもPositionやSeek()で位置を動かせるけどあまり見ない気がする

5デフォルトの名無しさん (アウアウウー Sa08-Ww/X)2018/10/04(木) 23:46:55.97ID:aAHFTiw7a
>>2
C#の最新事情でいうと、Span<T>という安全なポインタのようなものが入ったり、
それに伴ってBinaryPrimitivesみたいな低レベルなユーティリティが充実したりして、
残念ながら時代はCおじさんの方にある

6デフォルトの名無しさん (アウアウエー Sa6a-u7Me)2018/10/05(金) 00:13:17.22ID:H1SMXMnNa
>>2
むしろStreamにする意味って何なんだろうとw
他の形式のデータも透過的に扱いたいのでなければ意味がない気が

7デフォルトの名無しさん (ワントンキン MM1a-LjNM)2018/10/05(金) 09:06:50.59ID:LGlJpP21M
C#という事ではないのかもしれませんが相談させてください。

複数のPCで複数のアプリが稼働していて、これらの稼働状態をモニタリングしたいと考えています。
正常に動作しているか、今どういう状態か程度で、止まっていたりしたら知りたいです。

各アプリから状態をDBに都度登録してもらい、それを監視すればいいかとも思うのですが、
この方法だとアプリが正常に動作していない場合とかは、DBの更新が止まっているのを判断するしかありません。

このような案件の場合、よい方法、定番の方法ってあるでしょうか?

8デフォルトの名無しさん (ブーイモ MM5e-Ww/X)2018/10/05(金) 09:09:25.87ID:9pDoP7+lM
>>7
Xabbix

9デフォルトの名無しさん (オイコラミネオ MM71-c4ps)2018/10/05(金) 11:24:13.45ID:7tAwzpXyM
>>7
決まったフォルダ、アプリ別ファイルに状態を書き込むだけでいいような

10デフォルトの名無しさん (スフッ Sd94-3Vr4)2018/10/05(金) 12:25:06.26ID:3Syb0Y7Yd
>>7
正常に動作していない、を判定するのは無理だよ。
正常に動作していなかったら、「正常に動作できてません」って発言すら信用できないっしょ。
素直にアプリ側にたとえ報告することがなくても、忙しくても何が何でも一定時間おきに「動作中」を送信させて、DBには時間とともにそれを記録して、
確認側は最後の時間から一定時間過ぎても更新が無いことを確認するしかないと思うよ。

11デフォルトの名無しさん (ワントンキン MM1a-LjNM)2018/10/05(金) 14:38:26.76ID:LGlJpP21M
レスありがとうございます。
やはりウォッチドッグで監視するのが定番なんですね。

12デフォルトの名無しさん (アウアウウー Sa08-vBoO)2018/10/05(金) 18:21:42.66ID:nFaSxASea
定番とはいえないかなあ…

13デフォルトの名無しさん (アウアウエー Sa6a-u7Me)2018/10/05(金) 18:47:24.33ID:Ch2NTSqba
もともとDBに何か記録するのがそのアプリのお仕事ならともかく、
そうでないなら何でわざわざDBにって印象は受けるなあ

まあ、何か事情はあるんでしょうが

14デフォルトの名無しさん (ワントンキン MM1a-LjNM)2018/10/05(金) 19:55:03.19ID:LGlJpP21M
>>13
DBは使ってますが、特に拘りがあるわけではないです。
何が一般的ですか?

15デフォルトの名無しさん (スプッッ Sd9e-RpCj)2018/10/05(金) 20:17:35.38ID:N/cJ9waZd
一般的とか定番とかにこだわりすぎ
君のシステムにあったものを選択すればいい
すでにシステムとしてDBを利用してるなら、その横で正常動作を監視するのには何の違和感もない

16デフォルトの名無しさん (アウアウエー Sa6a-u7Me)2018/10/05(金) 20:29:12.88ID:A3z1jwkNa
>>14
いや、監視役のPCの監視用のアプリが直接各PCのアプリに確認するとか、
逆に各PCのアプリが定期的に報告するとか、そっちの方が回りくどくないんじゃないかと思っただけ。

だから直接通信できないとか何か事情があるのかなと

17デフォルトの名無しさん (ワッチョイ bc06-LjNM)2018/10/05(金) 23:36:46.57ID:hL15zPdp0
>>16
なるほど、確かにそうですね。
ソケット通信みたいなプロセス間通信でって事でしょうか?
時間の関係で監視アプリはまだ未定で、取り敢えずネタを仕込む仕組みだけは考えておこうと言う思いでDBが浮かんだんでしょうか。

18デフォルトの名無しさん (アウアウウー Sa08-Ww/X)2018/10/06(土) 01:17:30.44ID:GDCWtS3pa
それこそZabbixなどの監視スイートでいいだろ
サーバーとクライアントに出来合いのフリーソフト入れるだけで、このスレの連中が10年かけても作れない立派な監視システムの出来上がり

19デフォルトの名無しさん (スプッッ Sd70-m1mm)2018/10/06(土) 08:31:42.88ID:lJ9HnWTid
デリゲートってのがよく分からんのですが、
C言語の型だけ並べた関数ポインタみたいなものですかね?

20デフォルトの名無しさん (ワンミングク MM32-y1q8)2018/10/06(土) 08:40:04.82ID:hgnllvmvM
>>19
関数ポインタの配列ぐらいに理解しておいて問題ないかと
細かい違いはおいおいと

21デフォルトの名無しさん (ワッチョイ f8eb-RpCj)2018/10/06(土) 22:12:33.62ID:5sHefPQo0
>>19
そのとーり

22デフォルトの名無しさん (ワッチョイ 2c43-DRaL)2018/10/06(土) 22:12:35.20ID:b44kc6dy0
>>19
ヤることが定義できるって素晴らしいよね?
愛の形って関数が、セックルだったり、妹の靴下を嗅ぐだったり、ブラを嗅ぐなり

23デフォルトの名無しさん (ワッチョイ 968a-XM+q)2018/10/07(日) 04:08:03.95ID:VK7xOYMb0
他のPCの共有フォルダの内容を表示したいのですが、どうやってIDとパスワードを使って接続すればよいのでしょうか?

24デフォルトの名無しさん (ワッチョイ 6293-YiZA)2018/10/07(日) 07:50:20.22ID:PmJSQ8fh0
WNET系のwindowsAPI叩くか
net useか

25デフォルトの名無しさん (ブーイモ MM5a-y1q8)2018/10/07(日) 08:51:08.25ID:kve7u25tM
エクスプローラと競合するからお気をつけませ

26デフォルトの名無しさん (ブーイモ MM98-GL8C)2018/10/07(日) 12:50:18.77ID:zKmec8P2M
Javaより優位な点て何ですか?

27デフォルトの名無しさん (アウアウエー Sa6a-u7Me)2018/10/07(日) 12:55:40.93ID:TpDmbWu/a
原人とかカレーとか呼ばれずに済みまする

28デフォルトの名無しさん (アウアウウー Sa08-vBoO)2018/10/07(日) 17:24:45.63ID:I+vd7v7Qa
>>26
マイクロソフト商品と親和性が高い場合がある

29デフォルトの名無しさん (ワッチョイ d881-Eebv)2018/10/07(日) 19:05:14.16ID:OYpBo9t+0
親会社のオープンソースに対する信用度

30デフォルトの名無しさん (ブーイモ MMfd-Ww/X)2018/10/07(日) 21:25:32.12ID:fkKga7ZHM
>>26
国内だとJavaに比べるとエンジニアの平均スキルが高く、案件の質が良い

31デフォルトの名無しさん (ワッチョイ e2d2-pJhu)2018/10/08(月) 02:16:46.72ID:fwPk56zX0
>>26
過去のしがらみがないので
(ちょっとはあるけど)
良い進化ができる

32デフォルトの名無しさん (ワッチョイ c4e3-BkfR)2018/10/08(月) 02:19:34.16ID:dSuydhfr0
悪いことは言わん。
C#はやめとけ。C++の方がまし。

33デフォルトの名無しさん (ワッチョイ 9bc3-TgND)2018/10/08(月) 03:57:28.95ID:QkcHjm7c0
最近のC++の魔境ぶりはC#の比じゃない

34デフォルトの名無しさん (ブーイモ MM5e-rG3A)2018/10/08(月) 08:06:18.04ID:YAwndXAXM
悪いことは言わん。
C#はやめとけ。Javaの方がまし。

35デフォルトの名無しさん (ワッチョイ 7c8a-y1q8)2018/10/08(月) 08:11:27.49ID:876SMEcI0
Javaは供給過剰で単価がVB6並み

36デフォルトの名無しさん (ワッチョイ d0e8-vBoO)2018/10/08(月) 08:47:31.14ID:BjxsuyVh0
Javaはレガシィと言われる時代か

37デフォルトの名無しさん (ワッチョイ 671e-HFxR)2018/10/08(月) 10:27:37.97ID:jzUSomae0
C++やり過ぎて複雑すぎ
C# バランスがいい。速度必要ならunsafeも簡単にできるし。
java やらなさすぎ。速度必要ならJNIに逃げるしかない。

38デフォルトの名無しさん (ワッチョイ 967f-fb/i)2018/10/08(月) 10:31:33.47ID:I6BtkXxw0
パラダイムが同じならどの言語でも大差ないだろ
どうせ複雑な機能は使わない
複雑にならないように設計して実装するのが腕の見せ所でござろうよ

39デフォルトの名無しさん (ワッチョイ 671e-HFxR)2018/10/08(月) 10:35:09.02ID:jzUSomae0
まぁ、ラピッドリリースになった最新のJavaならラムダに始まってvarによる型推論もできるようになったり結構ストレスなく使える。
後はProject panamaやヴァルハラ?などのvaluetypeやら。コルーチンやasnc/awaitやらが来れば後10年は戦える。
プロパティも欲しいとこだが今さらこれは望み薄だろう。

40デフォルトの名無しさん (ブーイモ MM5e-VI3z)2018/10/08(月) 11:41:35.87ID:SD3o+hypM
VB6のがシンプルで素敵

41デフォルトの名無しさん (アウアウウー Sa08-Ww/X)2018/10/08(月) 11:59:18.45ID:3oh/BVONa
C#は7.xで参照が強化されて超複雑になったよ
低レベルなタスクに関わる一部の人だけが知っていればいいと思われがちだが、実は決してそうではない
最新のBCLには従来は配列とインデックスをセットで渡してたメソッドに軒並みSpan<T>のオーバーロードが追加されていて、早くも第一級の扱い
今後は新規APIについては基本的にSpan<T>のみをサポートするようになるだろう

42デフォルトの名無しさん (ワッチョイ 6ed3-kArq)2018/10/08(月) 12:21:04.95ID:Evsfy93P0
ライブラリを使う側なら精々AsSpanだけ覚えりゃええんちゃうの

43デフォルトの名無しさん (ワッチョイ 509f-x2yO)2018/10/08(月) 14:25:57.34ID:7WquQluz0
正直なところ聞きたいのだけどEFって業務システムで使える?
小規模のWebサービスのプロトタイピングにはイイかなーと思うけど大規模にも耐えうるのかな

44デフォルトの名無しさん (ブーイモ MM5e-Ww/X)2018/10/08(月) 14:44:04.44ID:QmlHMP6PM
EFはモデルの一貫性を強力に維持しながら継続的にモデルに手を入れていくような開発スタイルに適してる
巨大な単一のデータモデルを維持するようにはできてない
大規模開発でEFなら適切にドメインを分けてやらないとスケールしないよ

45デフォルトの名無しさん (ワッチョイ 968a-XM+q)2018/10/08(月) 17:44:43.35ID:ejHrcIFn0
2つのPC間でデータ送受信を行う際、現状はデータの最後に"<EOF>"を付加してファイルの末尾であることを通知しています。
これをなくして、送信側がデータの最初にデータサイズを明記し、受信側はそのサイズだけデータを受信したら受信完了という処理に変更しようと思うのですが、
みなさんの経験則的にはこれは悪手でしょうか?

46デフォルトの名無しさん (ワッチョイ aab3-GL8C)2018/10/08(月) 18:22:30.94ID:sIA/07pT0
>>45
むしろバイナリデータならそれが普通

47デフォルトの名無しさん (ワッチョイ ba99-3Vr4)2018/10/08(月) 18:25:46.47ID:Py80K8TM0
>>45
パスカルの文字列がそんなん。
電文ならASN.1がまさにそんな感じで「データ形式、データ長、データ」の連続。

48デフォルトの名無しさん (オッペケ Sr10-2wNQ)2018/10/08(月) 18:28:47.30ID:b2Tw+UtCr
>>45
そうしたほうが
受信側は必要最小限のバッファ確保で済むし
データ中に"<EOF>"を含められるし
いい事ずくめに見える

49デフォルトの名無しさん (アウアウエー Sa6a-u7Me)2018/10/08(月) 18:41:57.27ID:ikezuOk7a
>>45
申し訳ないけど全体的に何を言ってるのかよく分からないけど、
現状データ長を含まないってことは必然的にデリミタで区切る文字列ベースの
メッセージってことになると思うけど、そういうこと?

それならむしろ何のためにデータ長を含めたいのか分からない
送る方のコードも面倒が増えるだけだし、万が一データ長が間違ったメッセージが
送られてきたら後まで引きずっちゃうと思うけど

50デフォルトの名無しさん (ワッチョイ ba99-3Vr4)2018/10/08(月) 18:56:25.00ID:Py80K8TM0
データ長が狂う環境なら、何かがEOFになったり、EOFが何かになったりする可能性を潰すほうが大変じゃないか?
化けにくくてチェックもしやすい、データ長を渡すほうが良いと思うよ。

51デフォルトの名無しさん (ワッチョイ 6ee3-BBJl)2018/10/08(月) 20:18:47.02ID:kgyl4Ui40
>>45
そもそもなぜ変えたいのか?
何か問題あった?

52デフォルトの名無しさん (ワッチョイ d881-Eebv)2018/10/08(月) 20:29:56.77ID:vzuBe1j/0
一般的もしくは定番の方法が知りたいだけでないかなあ
金曜日にもそんな質問者がいましたけど

53デフォルトの名無しさん (ワッチョイ 72c3-DRaL)2018/10/08(月) 20:46:47.49ID:nA3KYx400
受信インターバルタイムアウトってのもあるな。

例えば9600bpsの場合、ざっくり1文字送るのに、
パリティとエラー含めて11ビット位だったかな。
めんどくせーから16ビットで1文字送ったとして、
1000[ms]÷9600[bps]×16[bit]で、1.66666…[ms]。
2文字無通信時間で打ち切るとして、約3.2[ms]の間、文字が来なかったら、そこで通信を打ち切る。

C#でそこまで精度でるか知らんけどな

54デフォルトの名無しさん (ワッチョイ 7c8a-y1q8)2018/10/08(月) 20:54:14.29ID:876SMEcI0
何故非同期モードw

55デフォルトの名無しさん (ワッチョイ 6ee3-BBJl)2018/10/08(月) 21:49:06.47ID:kgyl4Ui40
>>52
ケースバイケースだよね
どういう方式っつかタイムアウトで全ての辻褄を途中でリセットする仕組みがあって実際に復帰できるか?
が重要
大手の試験もそういうのが多い

asioとかタイムアウト設定できなくてクソ過ぎて死んだけど

56デフォルトの名無しさん (ワッチョイ aab3-GL8C)2018/10/08(月) 21:51:03.18ID:sIA/07pT0
>>53
> パリティとエラー含めて11ビット位だったかな。
エラーってなんだよ w
8ビットデータを調歩同期で送るなら
スタート(1) + データ(8) + パリティ(1) + ストップ(1〜2)
だから11〜12ビット/フレームだな
てか、今どきシリアル通信じゃなくて独自プロコトル + TCP/IPとかじゃないかな

57デフォルトの名無しさん (ワッチョイ 72c3-DRaL)2018/10/08(月) 22:17:45.91ID:nA3KYx400
>>56
だよなw

58デフォルトの名無しさん (ワッチョイ 3c19-vBoO)2018/10/08(月) 22:23:12.19ID:JzRq+M5U0
例えば下限が-10、上限が10として、
上限がくるまではずっとインクリメントして、
上限到達後、下限がくるまではずっとデクリメントするような、
数値間で折り返しを続けるプログラムを考えてみました。

https://ideone.com/LVqCtz

↑これだと上限に達したか、下限に達したかのフラグや
それを判定する箇所がスマートではない気がするのですが、
よりよい方法をお教えいただけないでしょうか

59デフォルトの名無しさん (ワッチョイ 6ee3-BBJl)2018/10/08(月) 22:26:53.17ID:kgyl4Ui40
>>58
スマートの定義をして
どんな方法聞いたって
ウンコって言うんでしょ?

60デフォルトの名無しさん (アウアウウー Sa08-Ww/X)2018/10/08(月) 22:39:07.68ID:hbOXQr6La
>>58
var asc = Enumerable.Range(lower, upper - lower);
var dec = asc.Reverse().Skip(1);
var seq = asc.Concat(dec).Repeat(100);
foreach (var x in seq) Console.WriteLine(x);

61デフォルトの名無しさん (アウアウウー Sa08-Ww/X)2018/10/08(月) 22:40:16.70ID:hbOXQr6La
>>60
訂正
一行目は (lower, upper - lower + 1); の間違い

62デフォルトの名無しさん (アウアウエー Sa6a-u7Me)2018/10/09(火) 00:09:25.69ID:7r5/ETxRa
>>58
ベタに書くのが一番でしょ
難しく考えるのも変な技巧を凝らすのもよくない
IEnumerable<int> AlternatingSequence()
{
  const int min = -10;
  const int max = 10;
  for (;;)
  {
    for (int i = min; i < max; i++) yield return i;
    for (int i = max; i > min; i--) yield return i;
  }
}

63デフォルトの名無しさん (ワッチョイ 3c19-vBoO)2018/10/09(火) 00:28:17.28ID:69FY4WT20
>>60-62
ありがとうございました
とくに>>62さんの案がしっくりきました
yieldは見たことはありましたが実装したことがなかったので勉強になりました

64デフォルトの名無しさん (アウアウウー Sa83-C2B7)2018/10/09(火) 07:40:30.99ID:GFeQRMMOa
int f(int x) {
int xx = x % 20;
if (xx < 10) return xx - 10;
else return 20 - xx;
}

Enumerable.Range(0, n).Select(f)

65デフォルトの名無しさん (ワッチョイ b28a-XM+q)2018/10/09(火) 15:11:25.69ID:cTdbH72R0
SQ

66デフォルトの名無しさん (ワッチョイ b28a-XM+q)2018/10/09(火) 15:16:28.69ID:cTdbH72R0
初心者なりにSQLiteに接続したくて以下のような最低限のコード書いたのですが、
この時点で明らかにおかしい場所はありますか?
https://ideone.com/w70wHX

67デフォルトの名無しさん (ワッチョイ 2175-t0gY)2018/10/09(火) 15:26:17.65ID:X0YGRA9k0
チンコの皮が被ってるところとか

68デフォルトの名無しさん (ワッチョイ 7c8a-y1q8)2018/10/09(火) 16:16:14.26ID:U5wLUz1A0
>>66
using が2つ足らないな

69デフォルトの名無しさん (ワッチョイ 84b3-bwKK)2018/10/09(火) 18:39:44.42ID:CLgat4sk0
情報処理試験の勉強をしていてセマフォというものを知ったのですが、C#の実務で使うシチュエーションはあるでしょうか?

いつ使うのかなと疑問に思いまして

70デフォルトの名無しさん (ブーイモ MMed-Ww/X)2018/10/09(火) 18:46:58.59ID:iDNploc3M
使わないよ
ドカタ現場で使っても誰も理解できないだろうし、業務アプリのアプリケーションコードのレベルでそんな細かい排他制御が必要になることはまず無い
普通にロックすればよい

71デフォルトの名無しさん (ワッチョイ 509f-x2yO)2018/10/09(火) 19:29:49.97ID:wlIrmiN40
他にスマートな並列処理制御が沢山有るからセマフォ、ミューテックス、lockは最後の手段という感じ

72デフォルトの名無しさん (ワッチョイ ee9f-GiWE)2018/10/09(火) 19:37:27.51ID:2+Q7pYPf0
WindowsFormでテキストボックスのスクロールバーを切り離したいのですが
テキストボックスとは別に配置したVScrollBarをコントロールの
スクロールバーと連動させるにはどうすればいいですか?
スクロール位置については調べて出てきた物を弄ればいけそうなのですが、
長さをどこで読めば良いのかわからず……

用途としてはテキストの折り返し位置を数値指定したくて無理矢理実装した状態です。
テキストボックスのサイズ自体を変更し、ワードラップを利用して無理矢理テキストの折り返しを作ってるので
テキストボックス自体のスクロールバーは隠してしまって
目に見える場所に操作用のスクロールバーを置きたい具合です。

Textboxをオーバーライドしてテキストの表示領域そのものを弄る事ができるなら
そちらのほうが理想なのですが、自分ではどこをどう弄ればいいのかわからず……

よろしくお願いします。

73デフォルトの名無しさん (ワッチョイ 2175-t0gY)2018/10/09(火) 19:44:52.49ID:X0YGRA9k0
位置のパーセント情報があるはずなんだが

74デフォルトの名無しさん (ワッチョイ d89a-GiWE)2018/10/09(火) 19:51:43.19ID:m4rO7Lb30
>>72
テキストボックスのスクロール位置を取得・復元する方法
http://pineplanter.moo.jp/non-it-salaryman/2017/11/23/csharp-scroll-control/

75デフォルトの名無しさん (ワッチョイ ee9f-GiWE)2018/10/09(火) 19:53:44.82ID:2+Q7pYPf0
>>72
すみませんPaddingとか右余白で散々ググって出てこなかったので
無いものと思い込んでたんですが>>73を見てプロパティ漁り直したら
普通にRightMarginを発見して解決して顔真っ赤にしてるので無かった事に……
俺の半月はなんだったんだ…………

スレ汚し失礼しました!!

76デフォルトの名無しさん (ワッチョイ ee9f-GiWE)2018/10/09(火) 19:58:09.84ID:2+Q7pYPf0
>>74
スクロール位置はそのページとかで沢山サンプルがあるのですが
スクロールバーの長さを連動させる方法が分からなかった具合です……!

結果そんなことをする必要はなかったのですが
色々応用が利きそうなので今後のために知っときたさはあります……

77デフォルトの名無しさん (スップ Sd9e-F3g9)2018/10/10(水) 18:03:57.13ID:S3B5em0Jd
IntPtrからList<int>に変換する方法を教えてくださらんか...

78デフォルトの名無しさん (アウアウウー Sa83-MQj3)2018/10/10(水) 18:50:06.53ID:8CCC3YOka
>>77
IntPtr型の値が指すアドレス基準に、指定個数分のデータを、という話なら
Marshal.Copyで配列にコピーしたあとにListに変換する

79デフォルトの名無しさん (ブーイモ MM98-Ww/X)2018/10/10(水) 18:55:52.86ID:FcX3TrAZM
>>77
unsafe { var list = new ReadOnlySpan<int>((void*)ptr, n).ToList(); }

80デフォルトの名無しさん (ワッチョイ d09b-RpCj)2018/10/10(水) 23:35:14.94ID:DLFqb8zL0
VBA上がりでC#勉強中なんですが、
別クラスに書いたコードを使いたい時、
○○ △△ = new ○○を記述して使ってるんですが、form Loadとかchangeイベント等で復数回登場する時でも都度使う所の近くで書いた方がいいんですか?それとも上部のpublicの所に書くのがいいんですか?

81デフォルトの名無しさん (アウアウウー Sa08-Ww/X)2018/10/10(水) 23:49:16.98ID:JyejHG/Ma
>>80
どうでもいい
人間の操作によって発生するイベントの頻度なんぞコンピュータの時間スケールからすると全く無視できる

82デフォルトの名無しさん (アウアウウー Saeb-gr2c)2018/10/11(木) 06:37:46.18ID:1VjRo7FSa
>>80
メソッド間でインスタンスを共有すべき理由がないなら個々のメソッドでインスタンス化したほうがいい
メソッドの独立性が高まり変更しやすくなるから

83デフォルトの名無しさん (ワッチョイ 67b3-9sSg)2018/10/11(木) 07:18:56.97ID:8Foxk2RW0
namespaceまで作ってプログラムしたことが無いのですが、プロは駆使するのが普通なのでしょうか?

アニマルインタフェース実装した猫クラスと犬クラスを人クラスがメッセージ出して鳴かせるレベルの超初歩設計しかした事無いので、どこでnamespace使うのかなと悩んでおります

84デフォルトの名無しさん (ワッチョイ 7f81-DjIR)2018/10/11(木) 07:37:53.81ID:Mcte2Vdx0
ファイルいっぱいあったらフォルダ分けして整理するやろ?
namespaceもおんなじようなもん

85デフォルトの名無しさん (オイコラミネオ MMfb-SRlQ)2018/10/11(木) 08:25:56.15ID:RUSG7cNqM
>>80
変数宣言や初期化の位置と
使用場所との距離の質問だとして

宣言箇所と使用箇所はなるべく近くにするのが言語に限らずセオリーだよ
可読性とリファクタリングの点で

86デフォルトの名無しさん (ペラペラ SDff-9sSg)2018/10/11(木) 12:30:54.25ID:iiNB2I9YD
>>80
C時代の名残りはVBAに強く引き継がれ
VBA使いがC#に引き継いで行く

最初からpythonやる人間を雇うのが正解

87デフォルトの名無しさん (ワッチョイ ffeb-JlWZ)2018/10/11(木) 14:06:58.98ID:sbec5Ilz0
JavaをやっていてJavaらしいコードを書ける人は大勢いるだろうけどさ
C#らしいコードを書ける人って、C#でプログラミングをしてる人の1割もいないんじゃねえのか?

88デフォルトの名無しさん (ワッチョイ c7e3-9/x8)2018/10/11(木) 15:05:55.06ID:HHTldmez0
千行近いメソッドで変数が先頭でまとめて宣言されてるC#のコードみるとゲンナリ

89デフォルトの名無しさん (ワッチョイ 7fa5-7Kxw)2018/10/11(木) 16:31:07.59ID:8OHEO6Pp0
だってBasicから始めた自分は
変数は頭にまとめて書いてある方が分かりやすいモン!

90デフォルトの名無しさん (アウアウエー Sa9f-NVVT)2018/10/11(木) 16:52:44.52ID:lOIGtRbea
>>80
>それとも上部のpublicの所に書くのがいいんですか?

と書いているので、質問の意図はメソッド内の変数の宣言や初期化の位置についてではなく、
同じクラスのインスタンスを複数のメソッドでnewして使ってる時に、
これをローカル変数ではなくフィールドにした方がいいのか?ってことじゃないのかな。

そうであるなら答えはNo。
フィールドにしなくても要件を満たせるものをフィールドにしてはいけない。

何にしても、質問は意図が分かるように書いて欲しいね。

91デフォルトの名無しさん (ブーイモ MMff-7iFr)2018/10/11(木) 18:53:33.96ID:EPVjjDDWM
forのループ変数がループの外で宣言されて使い回しされてるのわろた

92デフォルトの名無しさん (ワッチョイ c7e3-9/x8)2018/10/12(金) 09:28:14.69ID:cMc4b2ec0
クソコーダーのこだわりなんざどうでもいいからさっさと動くのリリースしろよ。テストできねーじゃねぇか。

93デフォルトの名無しさん (ワッチョイ 2775-00Iy)2018/10/12(金) 09:48:42.91ID:T14O4Tjf0
板違い

94デフォルトの名無しさん (ワンミングク MMbf-s6iV)2018/10/12(金) 09:49:30.31ID:+DY7sdXwM
W indows Fromアプリを作っています。
途中でアイコンを変更しました。Formプロパティ部分とプロジェクトのプロパティ-アプリケーションのアイコンの2か所です。
実行時のFormとエクスプローラでも詳細表示は変更後のアイコンになるのですが、エクスプローラでの大アイコンやショートカット、ドラッグした時のアイコンが古いままです。
どうすれば新しいアイコンに更新できますか。

95デフォルトの名無しさん (ワッチョイ 27f2-7Kxw)2018/10/12(金) 11:01:50.14ID:4rHGu3Q90
一度Windows標準のアイコンに戻して
再度新しいアイコンを選択してSaveしてから
再起動すれば更新されてない?

96デフォルトの名無しさん (アウアウエー Sa9f-NVVT)2018/10/12(金) 12:05:32.29ID:kn2Jso4ra
>>94
アイコンファイル自体に問題がある、なんてオチだったりしない?

97デフォルトの名無しさん (オッペケ Sr9b-xlqx)2018/10/12(金) 12:13:39.26ID:a9HH9GNYr
>>94
アイコンが変更されるのはWindowsの気まぐれだから変更されるまで待て

98デフォルトの名無しさん (ワンミングク MMbf-s6iV)2018/10/12(金) 13:05:26.62ID:+DY7sdXwM
>>95>>96>>97
レスありがとうございます。
アドバイス試してみましたがダメでした。気長に待ってみます。

99デフォルトの名無しさん (ワッチョイ 5fe9-DjIR)2018/10/12(金) 13:49:04.90ID:Prl0TAqQ0
アイコンってどっかでキャッシュクリア的なことできなかったっけ?

100デフォルトの名無しさん (オッペケ Sr9b-xlqx)2018/10/12(金) 14:37:18.55ID:a9HH9GNYr
>>99
やってみたけどダメだった
気長に待つしかない

101デフォルトの名無しさん (ワッチョイ 272b-JlWZ)2018/10/12(金) 16:30:01.41ID:arkneguz0
質問ですが
デバッグ構成でのexeとリリース構成でのexeは
デバッグ情報が邪魔する分、デバッグexeの方が遅いという話は知っていましたが
「微々たるもんだろ」とあまり気に留めてませんでしたが
それが原因と思われる現象に当たりまして・・・
デバッグは問題無く通るので実行すると、データが混雑すると固まるのです
試しにリリース構成のexeにしたら問題無く動きます
どうやらデリゲートのBeginInvokeを使っているので
非同期処理になりタイミングずれにデバッグ情報が相まって固まってるようなんだけど
こういう場合
「リリースexeで問題無いならいいじゃん!」なのか
「いやいや、タイミングがずれるとエラーが出る可能性があるなら対処しておくべき!」なのか
どうなんでしょうね?

102デフォルトの名無しさん (ワッチョイ c78a-9/x8)2018/10/12(金) 16:37:59.21ID:LyO2C2Nx0
いいわけないやろ

103デフォルトの名無しさん (ワッチョイ bf8a-4Hut)2018/10/12(金) 16:42:13.45ID:qSk0EFmG0
Html Agility Pack を使ってHTMLのスクレイピングをしているのですが、
↓のソースだと<h1>タグが存在していないとNULLエラーになります。
Try Catch を使わないでエラーを出さずに済む方法ってありますか?

       // Html Agility Pack
var htmlDoc = new HtmlAgilityPack.HtmlDocument();

htmlDoc.LoadHtml(htmlText);

var elm = htmlDoc.DocumentNode
.SelectNodes(@"//h1")
.Select(a => a.InnerText);

104デフォルトの名無しさん (オッペケ Sr9b-xlqx)2018/10/12(金) 17:07:37.53ID:KdHLMfUOr
普通にnullかどうか判定するしかないっしょ

105デフォルトの名無しさん (ワッチョイ ff23-pt3f)2018/10/12(金) 17:11:16.61ID:jtGT9aS30
SelectNodesがnull返すなら
.SelectNodes(...)?.Select(...)

106デフォルトの名無しさん (スッップ Sdff-VXer)2018/10/12(金) 18:52:08.67ID:o8bzBYu9d
>>101
最適化

107103 (ワッチョイ bf8a-4Hut)2018/10/12(金) 20:37:39.56ID:qSk0EFmG0
>>104  .
SelectNodes(...)?.で解決しました
var elm?とか .Select()?とはやったのですがうまくいかず、わからなかったのですが
そこで使うんですね
ありがとうございました。

108デフォルトの名無しさん (ワッチョイ 67b3-QRc/)2018/10/13(土) 20:01:17.77ID:wM7VhDKV0
>>101
原因の予想をそう考えているなら、CPUクロックを 1GHzとか遅くしてリリースexeで試してみるとか
(PCに負荷がかかっててもうまく動作するかってこと)

109デフォルトの名無しさん (ワッチョイ ff9f-2Eea)2018/10/13(土) 21:21:39.91ID:YNebL+WU0
XMLを読み込んで編集して保存する方法はいくつか有るようだけど制約なければXDocument使っとけばOK?
ちなみに構造が複雑なので静的モデルを作ってデシリアライズ->シリアライズが難しい場合の話

110デフォルトの名無しさん (ワッチョイ e7c9-4Hut)2018/10/13(土) 21:43:12.63ID:78tDj7sA0
>>101
それReleaseでも負荷高くなったら起きるんじゃないのか

111デフォルトの名無しさん (ブーイモ MM0b-wEhW)2018/10/13(土) 23:30:26.22ID:LdRaeBfZM
>>109
それでいい
XMLを使わなければならない制約もないなら今のMSはJSON.NETを強く推奨してるけど

112デフォルトの名無しさん (スプッッ Sd7f-W7JH)2018/10/14(日) 00:53:17.18ID:RAs/0wRTd
PC版Lineに来る最新メッセージを読み取る方法ってある?
調べても出てこず...

113デフォルトの名無しさん (ワッチョイ 5feb-DjIR)2018/10/14(日) 08:53:21.20ID:m3J+i7Py0
>>112
Kakaotalkのメッセージはやったことあるけど
暗号化されいて凄くめんどくさいよ。
俺なら素直に諦める。

114デフォルトの名無しさん (スップ Sd7f-W7JH)2018/10/14(日) 09:15:43.47ID:rtryEG4ad
>>113
APIみたいなのはやはり準備されていないのね
把握した
調べまくる時間とか無駄にせず助かりました

115デフォルトの名無しさん (ワッチョイ bf0a-a0t8)2018/10/15(月) 10:13:33.82ID:TGR3LnQ40
console.writeってコンパイルの最適化時に削除されますか?

116デフォルトの名無しさん (ワッチョイ 5fe9-DjIR)2018/10/15(月) 10:28:59.02ID:pVjp+zOb0
>>115
されたら困る
それデバッグ用の機能じゃないよ

117115 (ワッチョイ bf0a-a0t8)2018/10/15(月) 10:43:50.18ID:TGR3LnQ40
最終リリースする時は、console.writeの類のものは削除しないとexeの中に入ってしまうんかな?

118デフォルトの名無しさん (ワッチョイ dfc3-EHN7)2018/10/15(月) 11:34:37.06ID:tgS2uc1V0
#if DEBUG
Console.WriteLine("Debugにゃん");
#endif

119デフォルトの名無しさん (アウアウエー Sa9f-NVVT)2018/10/15(月) 11:54:04.74ID:wsJuGKnsa
>>117
Debug.Writeの方を使えばよいのでは?
https://docs.microsoft.com/ja-jp/dotnet/api/system.diagnostics.debug.write

見ての通りConditional属性が付いてるから、Release時にはこいつを呼び出すコードそのものが消える

120115 (ワッチョイ bf0a-a0t8)2018/10/15(月) 13:56:29.01ID:TGR3LnQ40
>>119
ありがとうございます、Debug.Writeを使うようにします。

121デフォルトの名無しさん (ブーイモ MM6b-wEhW)2018/10/15(月) 15:20:25.49ID:mYzH73J7M
工数一週間以上の開発ならちゃんとしたロギングライブラリ使ったほうがいいよ

122デフォルトの名無しさん (ワッチョイ c7e3-FjYh)2018/10/15(月) 18:16:16.25ID:il4L6pQz0
>>121
全部クソ
なんでキューに入れんねん
キューに積む形のログ出力ライブラリは全部クソ

ログアウト id223しました
ログイン id223しました

ってアホかw

123デフォルトの名無しさん (アウアウウー Saeb-pt3f)2018/10/15(月) 19:00:08.62ID:SAlDu2eYa
どのログ出力ライブラリの話をしているかは知らないが
キューで実装されているならログ順序は保証されるだろうに
もしくはスレッドセーフでないライブラリを複数スレッドから触っているか

124デフォルトの名無しさん (ワッチョイ c7e3-FjYh)2018/10/15(月) 19:55:33.87ID:il4L6pQz0
>>123
え?スレッド間で?
お前ちょっとだけ頭使ってレスしろよ

125デフォルトの名無しさん (アウアウウー Saeb-pt3f)2018/10/15(月) 21:07:45.41ID:SAlDu2eYa
>>123
情報が小出しかつ不明瞭だからエスパーしているが
複数スレッドからログ出力する場合の順序が未保証だからじゃないか
それがログ出力ライブラリとして妥当かどうかは更に別の話になるが

キューに積む積まない問わず、いいログ出力ライブラリって何がある?

126デフォルトの名無しさん (アウアウウー Saeb-wEhW)2018/10/15(月) 21:21:29.42ID:on44pmoFa
最近だとSerilogかな
ファッキンビチグソlog4jのパクリ系じゃないからシンプルで使いやすいし、
後でログの解析が非常に容易

127デフォルトの名無しさん (ワッチョイ 07e0-SmB1)2018/10/15(月) 21:30:24.71ID:E6pr56BO0
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。

128デフォルトの名無しさん (ワッチョイ dfd2-7vHE)2018/10/15(月) 23:26:10.89ID:L3fZFxj50
log4系はネット上に情報が沢山あるのと
自分が溜め込んだ資産が沢山あるからつい使いまわしちゃうな
仕様は確かにファッキンだが

129デフォルトの名無しさん (ワッチョイ c7e3-FjYh)2018/10/16(火) 00:05:25.55ID:tUmXldvA0
>>128
使い方間違えててマルチスレッドモードになってない率95%のlog4さんじゃないですか

130デフォルトの名無しさん (ワッチョイ bf93-SRlQ)2018/10/16(火) 01:16:04.35ID:PMA7SNGw0
そのまま泳がせておけばよいのに

131デフォルトの名無しさん (ワッチョイ dfeb-JlWZ)2018/10/16(火) 11:56:04.25ID:L6l9R59e0
GUIアプリケーションでのawaitについて教えてほしいんだけどさあ
↓この処理をボタン等のイベントから実行した場合、JklあるいはAsdfasyncが終了したかどうかってどうやってメインスレッドから取得するものなの?
async Task Asdfasync(){
await Jkl();//終わるまで画面をロックさせたくないが、これが終わっていない段階で他のボタンを押されると困る
}

132デフォルトの名無しさん (オイコラミネオ MMfb-SRlQ)2018/10/16(火) 12:15:32.35ID:WoCKn0wKM
その戻り値は何のためにあると思う?

133デフォルトの名無しさん (ワッチョイ dfeb-JlWZ)2018/10/16(火) 13:32:46.61ID:L6l9R59e0
それが使えるのならありがたいけど、ボタンのイベントから呼び出されたメソッドの戻り値って取得できるものなの?

134デフォルトの名無しさん (アウアウエー Sa9f-NVVT)2018/10/16(火) 13:42:08.84ID:lQy+05sVa
素直ににawaitの前後でボタンをDisable/Enableではあかんの?
そもそもそのためのawaitでしょう。

もちろん、常にそうできるわけじゃない(JKが終わったからって無条件でボタンをEnableに
できないような要件もありうるから)だろうけどほとんどの場合はそれでいいでしょ

135デフォルトの名無しさん (ワッチョイ 7f80-WnU0)2018/10/16(火) 13:48:09.68ID:TeNN2wBh0
await は非同期処理を、同期的に書けるもの

await で検索すれば?

136デフォルトの名無しさん (ササクッテロル Sp9b-y1e+)2018/10/16(火) 15:40:53.54ID:h+X94emHp
>>133
そのAsdfasyncとやらは直接イベントに接続せずに
別のイベントハンドラから自分で呼び出すんやろ?

137デフォルトの名無しさん (ワッチョイ dfc3-EHN7)2018/10/16(火) 18:13:14.36ID:CU/ms8va0
先に云っとく、良いソースじゃない。
こういう雰囲気?
Formにボタンを2つつけて動かしてみて
private Task __results;
private void button1_Click(object sender, EventArgs e)
{
if ((null == __results) || (__results.IsCompleted))
{
System.Diagnostics.Debug.WriteLine("Pass");
__results = Task.Run(() =>
{
this.Invoke(new Action
(() =>
{
button2.Enabled = false;
}
));
Task.Delay(5000).Wait();
this.Invoke(new Action
(() =>
{
button2.Enabled = true;
}
));
});
}
else
{
System.Diagnostics.Debug.WriteLine("Fail");
}
}

138デフォルトの名無しさん (ワッチョイ dfc3-EHN7)2018/10/16(火) 18:15:09.46ID:CU/ms8va0
ごめんなさい。
たぶん、全然検討違いだな。
スレ汚しごめん

139デフォルトの名無しさん (ワッチョイ df9b-DjIR)2018/10/16(火) 23:11:55.51ID:O/V1xvTL0
コンボボックスが20個。
エクセルシート2の指定列の内容を各コンボボックスに入れる。
※cbo1には4列目、cbo2には10列目などバラバラ。

closedExcel?で読み込んで入れたんですけど、うまい作り方を教えてください。

Clsdata.CboAdd(this,tarPath,tarShtname,”4”,cbo1)
みたいに引数違いを20個書き、別クラスに追加するコード書いたんですけど、データだけ取ってきてクラスじゃなくフォームの方に書いた方が分かりやすいですかね?
別フォームでもコンボボックスに同じように追加するのがあるので使い回してるんですけど...

説明下手で申し訳ないですが、ご教授下さい。

140デフォルトの名無しさん (アウアウエー Sa9f-NVVT)2018/10/16(火) 23:33:54.56ID:9BmmQZOma
>>139
ワークシートを操作するクラスを作って、そこに列のデータをobject[]かstring[]で返すメソッドを書く

public object[] GetColData(int col) { ... }

それをコンボボックスにセットするコードはForm側に書く。
コンボボックスを引数で渡すような馬鹿なことはしちゃだめ

141デフォルトの名無しさん (ワッチョイ c7b3-Zu1O)2018/10/17(水) 01:21:18.71ID:HL5CR6DW0
>>139
1クラスでlist<string>を作る
シート番号、セル開始行、列、セルの終わりを入れる
combobox1.items.AddRange( )で
2 コンボボックスをList化しておく
コンボボックス番号を入れるとitemsにかえしてくれるクラスにする
3 エクセルにコンボボックス番号、シート番号、セル範囲をかいておく
それをコンボボックスのアイテムに入れてくれるクラスを作る
エクセルをいじるだけでコンボボックスのデータができる

こんな感じかな?

142デフォルトの名無しさん (ワッチョイ 67b3-9sSg)2018/10/17(水) 07:14:52.68ID:JMO34tOe0
C#やってきたけどjava土方のが仕事あって羨ましい
シンタクスは似てるけど採用側はjava経験者しか見ないし

最初の開発重要だな

143デフォルトの名無しさん (JP 0Hbb-DjIR)2018/10/17(水) 08:13:45.91ID:Jp0PkqObH
>>142
Javaは絶対やっといたほうがいいよ。
c#perであれば2日で基本はマスターできるよ。c#と違ってawt,swing,fxは全部使い物にならないからパスでいい。
後はspringframeworkぐらい理解しといたら間違いなし。
Javaは21世紀のCOBOLなんだからあと30年はやっていける。

144デフォルトの名無しさん (ブーイモ MM6b-PmPf)2018/10/17(水) 10:56:04.11ID:Uge9YwCPM
ユニットテストやらリファクタリングやらデザインパターンの本は大抵Javaで例示してあるからそっち勉強するならJava知ってて損はないな

145デフォルトの名無しさん (オッペケ Sr9b-xlqx)2018/10/17(水) 12:08:10.07ID:2ev72K5gr
いや、そもそもJavaの案件なんかやらない
やれって言われてもやらない

146デフォルトの名無しさん (ワッチョイ 67b3-9sSg)2018/10/17(水) 12:46:21.10ID:uwloByVh0
>>145
java拒否したらphpしかないで

147デフォルトの名無しさん (ワッチョイ 7fa5-7Kxw)2018/10/17(水) 20:08:15.98ID:A92Ghs040
へーJava勉強してみようかなー
ってJavaとJava Scriptの違いをさっき調べて知ったくらいだけどwww

148デフォルトの名無しさん (ワッチョイ c78a-2+Lk)2018/10/17(水) 20:31:01.17ID:DWSbH/V/0
ババ引いてくれる底辺労働者一人確保出来て良かったね

149デフォルトの名無しさん (ワッチョイ dfd2-VXer)2018/10/17(水) 21:12:16.84ID:aIelci8v0
>>147
やめとけ

150デフォルトの名無しさん (ワッチョイ 7f80-WnU0)2018/10/17(水) 21:26:17.92ID:RzUo3BE10
まずこの本で、オブジェクト指向を学ぶのが、Java の定番!

スッキリわかる Java入門 第2版、2014

151デフォルトの名無しさん (ワッチョイ df9b-DjIR)2018/10/17(水) 21:47:31.88ID:6MaVa97X0
>>140
>>141
ありがとうございます。やっぱコンボボックスの引数はよろしくないですよね。

内容を取ってくるコードって一回で読み取る事は出来ますか?上から繰り返しで配列に入れるんですかね?

152デフォルトの名無しさん (ワッチョイ bf8a-JlWZ)2018/10/17(水) 22:32:39.40ID:vYj/Og3S0
ずっとC# + Windows FormsでGUIやってたけど、C++とWin32API使い始めたら、めっちゃ高速でびっくりだよ。
GIUI使いたい人はC#なんて捨てちまえ。

153デフォルトの名無しさん (ワッチョイ 0fb3-7PZ0)2018/10/18(木) 02:06:12.46ID:JCcaGiED0
>>151
できる
コンボボックスを配列化する
シート名 列番号をエクセルにデータで書いておいて
あとはforで繰り返す

154デフォルトの名無しさん (ワッチョイ a3b3-TTtA)2018/10/18(木) 06:54:30.01ID:1ktj5P410
>>152
Win32APIで納品された客可哀想

155デフォルトの名無しさん (ワッチョイ cac3-GnXk)2018/10/18(木) 08:13:38.33ID:jQKgibt10
>>152
このスレC++,MFC,ATL,COM+を経て、C#のやつも結構おるだろ

156デフォルトの名無しさん (アウアウカー Safb-dUTK)2018/10/18(木) 08:17:50.84ID:qf9NxgCDa
個人で作るならだけど、納期に間に合わせる。
バグ作って責任取らされる。
そう言うリスクから離れたいから、仕事じゃ使いたく無いな。

いあ、もう辞めたけど。

157デフォルトの名無しさん (ワッチョイ 1f9f-ypm2)2018/10/18(木) 11:20:06.75ID:j6REk5Yq0
リアルタイム通信系なら少しでも高速化するのは理屈通ってるけど
そうでないのなら安定感捨ててまでコンマの差を取るかというと……
って印象であってる?

158デフォルトの名無しさん (ブーイモ MM17-PhZZ)2018/10/18(木) 11:44:02.53ID:Mxr2Ur4LM
一般的にはその認識は間違ってる
納期の制約があるなら最初の開発段階での最適化は結果的にアプリケーションのパフォーマンスや品質を下げる原因になることが多い
一度組み上げてから余った時間で最適化やバグ取りをした方が品質はほぼ間違いなく高くなる

159デフォルトの名無しさん (アウアウエー Sae2-hgbC)2018/10/18(木) 12:29:09.15ID:kbeEYbP/a
.NETの黎明期から耳タコのはずだけど、そもそも大半のケースは
起動の遅さをパフォーマンスの悪さと錯覚されてるだけw

>>151
プログラムはシンプルに。
何を言ってるのかよく分からないけど、複数の列のデータを一度に返すメソッドを書きたい、
と言ってるなら、そんなことは出来てもやらない方が吉。

そんなのは多分可読性を下げるだけ。
ベタに、
ComboBox1.Items.AddRange(xlSheet.GetColData(5));
ComboBox2.Items.AddRange(xlSheet.GetColData(1));
ComboBox3.Items.AddRange(xlSheet.GetColData(9));
...

こう書いた方がぱっと見て何やってるかわかるでしょ。
こういう羅列がどうしても許せないならTagに対応する列の番号を入れておく方法もあるが、
個人的にはお勧めしないなあ

160デフォルトの名無しさん (ワッチョイ be81-fIkj)2018/10/18(木) 15:55:57.15ID:68MDIDIk0
>>152
確かにめっちゃ高速なんだが保守要員の確保はどうなんだ?

161デフォルトの名無しさん (ワッチョイ 7bd2-0gnm)2018/10/18(木) 21:21:17.47ID:bB+Y9cEL0
>>155
まんま過ぎてワロタ

162デフォルトの名無しさん (ワッチョイ e39f-j6wj)2018/10/19(金) 07:04:52.16ID:vAxKIzRz0
App.configを使わずにサブフォルダからDLLを読み込むようにしたいのですがどうしたらいいですか?

163デフォルトの名無しさん (アウアウウー Sa9f-rirA)2018/10/19(金) 07:54:50.73ID:9lsNtaTJa
>>155
MSC+SDKでC言語の頃からやってる

164デフォルトの名無しさん (アウアウエー Sae2-hgbC)2018/10/19(金) 11:40:51.68ID:KTHcKJLya
>>162
「C# pathを通す」で検索してトップに出てくる記事の方法でたぶん出来ると思う

165デフォルトの名無しさん (スップ Sd2a-j4Da)2018/10/19(金) 12:10:08.36ID:em3M1VTdd
closedXMLで指定された列の空以外の最終行のnumberの取得のコードってないですか?

166デフォルトの名無しさん (ワッチョイ cac3-Dtax)2018/10/19(金) 12:11:59.42ID:xA8MYlai0
>>163
Win 3.1の頃かなぁ

167デフォルトの名無しさん (ワッチョイ 5f17-usPd)2018/10/19(金) 18:38:13.29ID:IZvEaNuI0
>>162
AppDomain.CurrentDomain.AssemblyResolve

168デフォルトの名無しさん (ドコグロ MM8a-Kx/I)2018/10/19(金) 19:52:33.47ID:e848+/7OM
>>163
Windows3.1かな?
既にMFCは出てたはずだけどCのほうが慣れてる(て言うかC++はわけワカメな)ので最初はC+SDKのパターンもあったとか聞いたことある

169デフォルトの名無しさん (ワッチョイ 4b43-Dtax)2018/10/19(金) 21:50:14.52ID:geknAxVx0
ジジイばかりじゃねーかw

って俺も孫が先月産まれた訳だがw

170デフォルトの名無しさん (JP 0H2b-ZKwc)2018/10/20(土) 00:24:18.19ID:HWFrLtjLH
さすが5ch
インターネット老人会そのものだ

171デフォルトの名無しさん (ワッチョイ 4bd6-7PZ0)2018/10/20(土) 02:23:01.29ID:ccQVPHU20
DataGridViewは便利だけどデータの絞込とか実装できないんよねぇ・・・

172デフォルトの名無しさん (アウアウウー Sa9f-rirA)2018/10/20(土) 08:01:18.87ID:Bcjmv4pla
>>168
MFC(VC)以前のWindows3.0から

173デフォルトの名無しさん (ドコグロ MM22-b3y3)2018/10/20(土) 08:03:50.86ID:vp6V3Xy/M
>>169
今更何を言ってるんだよ w
掲示板と言うメディア自体が爺しかいなくなってる

174デフォルトの名無しさん (アウアウウー Sa9f-HRlU)2018/10/20(土) 08:13:45.80ID:/P2yZ5cia
今の若者は顕示欲が強いく批判もされたくないから実名でブログの方が理にかなってるのだろう

175デフォルトの名無しさん (ドコグロ MM22-b3y3)2018/10/20(土) 08:18:20.72ID:vp6V3Xy/M
>>172
おお、Windows3.0を使ってた人なんて初めて見たわ
3.1から使い始めた俺はまだまだ若造なんだな w

176デフォルトの名無しさん (アウアウカー Safb-dUTK)2018/10/20(土) 08:20:31.03ID:Nttc2RvPa
⒊0は日本じゃ売られなかったって誰か教えてやれよ。。。

177デフォルトの名無しさん (ワッチョイ 6ab3-b3y3)2018/10/20(土) 08:59:16.77ID:8XvHu+iJ0
>>176
え?
ふらっと C#,C♯,C#(初心者用) Part140 	YouTube動画>2本 ->画像>15枚

Windows for Workgroupsと勘違いしてるのかな?

178デフォルトの名無しさん (アウアウカー Safb-dUTK)2018/10/20(土) 09:17:14.34ID:Nttc2RvPa
悪かったよ。
B何てあったんか。
PC98懐かし過ぎて二度見したわw

179デフォルトの名無しさん (ワッチョイ 6ab3-b3y3)2018/10/20(土) 09:22:24.86ID:8XvHu+iJ0
>>174
そう言うのもあるだろうけど、俺等の世代はテキスト主体だったけど今の若い奴等は画像メインって言うのが大きい気がする
俺だけかも知れないけど640KBでやりくりして56Kbpsがスゲーって言ってた世代の記憶は一生消えないと思う

180デフォルトの名無しさん (ワッチョイ bea5-Fc6z)2018/10/20(土) 10:03:32.03ID:qexLty9p0
Task.Delay()の時間設定ってかなりテキトーですか?
0と1msがあまりにも差がありすぎる気がス

181デフォルトの名無しさん (ワッチョイ 0fd3-usPd)2018/10/20(土) 10:54:16.89ID:ODHHe6QF0
>>180
そりゃ「"最小***ms以降"で目を覚まして」ぐらいの意味だからねそれ
1ms単位できっちりスレッド切り替えを保証できるOSでは無いのだ

状況次第だけどMMCSSやtimeBeginPeriod(非推奨)を設定すればある程度改善できる場合もある

182デフォルトの名無しさん (ワッチョイ bea5-Fc6z)2018/10/20(土) 12:57:53.42ID:qexLty9p0
>>181
そうなのか
正確に測ったわけじゃないけど1msに設定しても
体感的に10msくらい止まってる気がする
短い停止はThread.Sleepのほうがレスポンス速いな
でもこっちは長くするとデッドロック?しちゃう
でTass.Delayにしてみたんだけど・・・
あちらを立てればこちらが立たずだな

183デフォルトの名無しさん (ワッチョイ be80-6qH8)2018/10/20(土) 13:07:38.97ID:dg5LoPsJ0
10ms ぐらいだろ

組み込みみたいな、リアルタイムOS じゃないから

184デフォルトの名無しさん (ワッチョイ be81-fIkj)2018/10/20(土) 13:28:52.22ID:fOofNO0j0
>>179
DOS=HIGH

これも未だに覚えてるわ
オフセットとセグメントというめんどくさいもののおかげで
+64K-36バイト余分があるという

185デフォルトの名無しさん (スッップ Sd8a-w2rH)2018/10/20(土) 15:48:18.27ID:sxRx8jfWd
絶対パスなら(先頭に¥マークを含む)相対パスに変換するって処理って何か関数あるかな?

186デフォルトの名無しさん (ワッチョイ 5f17-usPd)2018/10/20(土) 15:51:44.06ID:HNej4b9n0
c# 絶対パス 相対パス
で検索すれば一発じゃん

187デフォルトの名無しさん (アウアウカー Safb-dUTK)2018/10/20(土) 15:55:52.46ID:Nttc2RvPa
大分離れたけど、何年か前のC#6か、それより前で文字列に@付けたりなんだりで解決してなかったか?

188デフォルトの名無しさん (アウアウウー Sa9f-HRlU)2018/10/20(土) 15:56:22.36ID:/P2yZ5cia
>>185
Path.GetRelativePath

189デフォルトの名無しさん (アウアウカー Safb-dUTK)2018/10/20(土) 16:00:52.98ID:Nttc2RvPa
>>187
すまん。
的外れだった。

190デフォルトの名無しさん (ワッチョイ 371b-yaxr)2018/10/21(日) 23:07:31.83ID:gVzxUBHM0
配列の次元を動的に決める方法ってあります?
例えばHairetsuっていう名前のオブジェクトがあったとして、
コンストラクタでhoge(int x)が呼び出された時は1次元配列、
hoge(int x, int y)が呼び出された時は2次元配列にしたい。

191デフォルトの名無しさん (アウアウエー Sae2-hgbC)2018/10/21(日) 23:43:26.15ID:hj9/4JnXa
>>190
Array.CreateInstance?

192デフォルトの名無しさん (ワッチョイ c3eb-nBLa)2018/10/22(月) 00:21:30.44ID:KsYG64zi0
>>165
一行で書くとこんな感じ?
worksheet.Columns("A").First().Cells(true).Max(cell => cell.Address.RowNumber);

193デフォルトの名無しさん (ワッチョイ eaa6-kqR0)2018/10/22(月) 03:54:32.49ID:lcyNLVRb0
sizeof(char) は 2 なのに Marshal.SizeOf<char>() が 1 になるのは何故ですか?

194デフォルトの名無しさん (ワッチョイ be81-jJi7)2018/10/22(月) 04:57:46.04ID:DedBSVU60
ANSI扱いで計算されてるから

195デフォルトの名無しさん (ワッチョイ 1f9f-ypm2)2018/10/22(月) 14:42:05.76ID:z/eoCJYy0
ダブルクリックするとデフォルト値に戻るTrackBarを作りたいのですが
Trackbar.DoubleClickイベントを追加してもクリックイベントが動くだけで反応してくれません……
ググった情報を参考に継承クラスにしてからSetStyleでStandardDoubleClickを追加しても無反応でした
よければご教授よろしくお願いします……

196デフォルトの名無しさん (スププ Sd8a-Etlc)2018/10/22(月) 16:42:10.00ID:NGaoO2J9d
サブクラス化でダブルクリックのメッセージを盗む

197デフォルトの名無しさん (アウアウエー Sae2-hgbC)2018/10/22(月) 16:49:58.28ID:PhEYlXMOa
>>195
簡単だろ...と思ったけどそうでもないみたいね
CreateParamsオーバーライドしても出来なかった
https://bytes.com/topic/c-sharp/answers/492805-enable-trackbar-doubleclick-event

ダブルクリックの成立条件がOSの設定と別になるのは諦めて
自分でダブルクリックを実装するしかない気がする。知らんけど

private Stopwatch mStopWatch = new Stopwatch();
protected override void OnClick(EventArgs e)
{
  base.OnClick(e);

  const int maxDoubleClickInterval = 500;
  if (mStopWatch.IsRunning && mStopWatch.ElapsedMilliseconds <= maxDoubleClickInterval)
  {
    OnDoubleClick(e);
    mStopWatch.Stop();
  }
  else mStopWatch.Restart();
}

198デフォルトの名無しさん (アウアウエー Sae2-hgbC)2018/10/22(月) 16:50:32.09ID:PhEYlXMOa
>>196
メッセージ自体が飛んでこないのよ

199デフォルトの名無しさん (ワッチョイ 1f9f-ypm2)2018/10/22(月) 17:10:21.59ID:z/eoCJYy0
>>197
あーーやはり根本から用意されてないんですね……
自分の初歩が間違ってるのかなと思っていたのですが少し安心しました
ありがとうございます!

200デフォルトの名無しさん (ワッチョイ f3a5-Fc6z)2018/10/23(火) 08:10:29.01ID:WlOKeoDJ0
素人のボヤキで恐縮ですが
何度も書いては直しを繰り返し書き足したコードが
最後の最後、どうしてもデバッグが通らなくなりまして
いくら調べても動かない原因か分からず
もう考えるの面倒くさくなって
新規のFormに一から同じコード書き直してみたら・・・動くじゃん!
たぶん何度もトライ&エラーしたから何処かで操作間違えて
IDEが自動で生成したコードにゴミが混じったんじゃないかと思ったのですが
この動くコードと動かないコードの違いを簡単に発見できませんかね?
今、全ての.csファイルを一行ずつ比較してますが・・・もう飽きましたwww
メインのコードは全く同じでした
ちなみにデバッグで出るエラーは、あるクラスのメソッドの定義が無いというやつです

201デフォルトの名無しさん (ワッチョイ 1f9f-ypm2)2018/10/23(火) 08:58:05.56ID:4KRTdb+90
定義がなくてエラーを吐くところまで分かるなら
動くほうのコードをその定義名で検索してコピペすればいいのでは……?

202デフォルトの名無しさん (ワッチョイ f3a5-Fc6z)2018/10/23(火) 09:16:11.92ID:WlOKeoDJ0
自作のメソッドじゃないのです
usingでちゃんとクラス指定してますし
少なくとも手で入力したコードは同じなので

203デフォルトの名無しさん (ワッチョイ 1f9f-ypm2)2018/10/23(火) 09:37:53.24ID:4KRTdb+90
いや、だから自動生成のコードも比較してるんだよね
普通にそこにヤマ当てて検索すればいいのでは…………???

204デフォルトの名無しさん (スプッッ Sd2a-w2rH)2018/10/23(火) 10:00:22.54ID:XCdCnqpbd
List<int>型をカンマ区切りの文字列にしたいんだけども一個ずつforeachで要素取り出して繋げるしかないかな?

205デフォルトの名無しさん (スプッッ Sd2a-w2rH)2018/10/23(火) 10:03:28.47ID:XCdCnqpbd
joinをレスかいた後に見つけました!
すみません

206デフォルトの名無しさん (ワッチョイ afe3-usPd)2018/10/23(火) 10:43:05.65ID:IN4ounIY0
質問した直後に答えが見つかるのはありがちである

207デフォルトの名無しさん (ブーイモ MMd6-tSmu)2018/10/23(火) 10:55:13.88ID:cDc5Fd7gM
質問する際に文字に起こすことによって頭が整理されるためである

208デフォルトの名無しさん (スップ Sd8a-YMLY)2018/10/23(火) 11:08:35.71ID:mgVace2od
staring[] strLine = system.IO.File.ReadAllLines(tarTxtPath,System.Text.・・・)

strLine = strLine[0].Split(chrCut)

return strLine;

フォーム1で一回通ったあとフォーム2で2回目通るときにエラーで別のプロセスで使用されているって出るんですがどういったエラーですか?
ファイル開いてるってことですか?

209デフォルトの名無しさん (ワッチョイ bee8-nBLa)2018/10/23(火) 11:14:39.42ID:Vkutn+dk0
>>207
あるある

210デフォルトの名無しさん (ワッチョイ afe3-usPd)2018/10/23(火) 11:29:22.32ID:IN4ounIY0
探すのをやめたとき見つかることもよくある話で

211デフォルトの名無しさん (ワッチョイ 2e23-agwd)2018/10/23(火) 14:06:54.25ID:GxUzOGox0
>>208
そう
ただFile.ReadAllLinesはオープンからクローズまでやってくれるので普通は発生しない
他でそのファイルを触ってない?
あと自プログラム上はクローズしたけどアンチウィルスソフトがまだ触ってるってケースがある

212デフォルトの名無しさん (ワッチョイ 2a9b-YMLY)2018/10/23(火) 21:57:42.31ID:H4AFqJh00
>>211
原因を探る方法ってなんかあります?

213デフォルトの名無しさん (ワッチョイ be9a-ypm2)2018/10/23(火) 22:47:02.21ID:beMFeyu90
>>208
Readだとそもそも他でロックしていても別のプロセスで使用されているってエラーにならないはずなんだけど
書き込みモードで開いたままとかよっぽど変なことしていないか?
>>212
とりあえずダミーで
string[] strLine = system.IO.File.ReadAllLines(tarTxtPath,System.Text.・・・)
のすぐ下に別の配列への読込み
string[] strLine2 = system.IO.File.ReadAllLines(tarTxtPath,System.Text.・・・)
を入れて見てエラーになるかならないか確認してエラーが出たらお手上げ
エラーが出ないのならstring[] strLine = system.IO.File.ReadAllLines(tarTxtPath,System.Text.・・・)から2回目の実行時にエラーの原因がある

214デフォルトの名無しさん (ワッチョイ ea68-7PZ0)2018/10/23(火) 22:54:16.72ID:t0pM1C750
Windowsで簡単なデスクトップアプリ、コマンドプロンプトアプリを作るのが目的で
無料のVisual Studio 2013 for Desktopをインストールしている

最近調べたらVisual Studio 2017 Community版なるものが無料でリリースされてるようだけど
2013 for Desktopから乗り換える価値あると思う?
それとも2013 for Desktopをそのまま使い続けていた方がいい?

215デフォルトの名無しさん (ワッチョイ be9a-ypm2)2018/10/23(火) 23:19:13.87ID:beMFeyu90
>>214
2013だと最新のC#や.NetFrameWorkwpターゲットにしたものが作れないと思うけどVisualStudioのスレで聞いて
メリットとデメリット詳細に説明するのは難しいと思うから

216デフォルトの名無しさん (ラクッペ MMc3-xfgi)2018/10/23(火) 23:37:40.87ID:EnOD72ofM
>>214
VS communityは商用利用に制約が有ります。
Express 2017 for Windows Desktopを利用しましょう。
Express 2017 for webはないのでwebはVSCODEに移行しました。

217デフォルトの名無しさん (ワッチョイ ea68-7PZ0)2018/10/24(水) 00:13:22.70ID:mtZGy2HS0
dd
2017 for Windows Desktopに乗り換えまつ

218デフォルトの名無しさん (アウアウウー Sa9f-tSmu)2018/10/24(水) 00:29:43.28ID:XKgg3tJUa
>>216は間違い
VS Communityは組織の規模に制限があるが用途に制限はない

219デフォルトの名無しさん (スップ Sd2a-YMLY)2018/10/24(水) 07:44:57.85ID:s6gpcYwid
>>213
書き込みモードで放置してました。
お手数おかけしました!

220デフォルトの名無しさん (スプッッ Sd2a-w2rH)2018/10/24(水) 10:07:14.94ID:3/mFq1HRd
>>216
5人以上での開発からじゃなかったっけ

221デフォルトの名無しさん (ワッチョイ 2aad-7PZ0)2018/10/24(水) 13:09:57.36ID:AbQuJmTL0
プログラマーとして転職するにはどんな本までマスターしてれば大丈夫ですか?
ゴールからはじめるC#は読めました。

222デフォルトの名無しさん (アウアウカー Safb-dUTK)2018/10/24(水) 13:24:18.69ID:pa4PW987a
基礎としては入門で十分。

読んでから作るのではなく、作りながら読む。
必要だと感じないと頭に入らない。

223デフォルトの名無しさん (ブーイモ MMbf-tSmu)2018/10/24(水) 13:34:18.54ID:KNarJnl6M
C#ってあんまり未経験OKの仕事ないからJavaから入るのがいいと思うよ
JavaならFizBuz書ければ十分仕事できる

224デフォルトの名無しさん (オッペケ Srb3-zYpp)2018/10/24(水) 13:46:07.47ID:uTlH1PNGr
まじかよ

225デフォルトの名無しさん (ワッチョイ 7bea-j6wj)2018/10/24(水) 13:53:12.06ID:8s24r2uo0
>>221
本ならEssential C#
まぁ作った物を見せるのが一番だけどな

226デフォルトの名無しさん (ワンミングク MMda-szOx)2018/10/24(水) 18:41:34.40ID:HJod1vGPM
VS2013でweb formを作っています。
以前VS2008の時代、AjaxControlToolkitのModalPopupExtenderを使って設定用のポップアップを作っていました。
今回同じような事をしたいのですが、VS2013の環境で、同等の事を簡単にできるよい方法はありませんか。

227デフォルトの名無しさん (ブーイモ MMbf-tSmu)2018/10/24(水) 19:08:39.26ID:KNarJnl6M
>>226
WebFormsに頼るのはやめてBootstrapを使ってください

228デフォルトの名無しさん (ドコグロ MM3b-b3y3)2018/10/24(水) 20:20:05.07ID:a4OXlgOjM
>>220
開発者の数じゃない
でかい企業は開発者の人数関係なく使っちゃダメ
小さい企業は5人までならいいってこと
なので会社が小さくても3人の開発者が2チームいたらアウト

■個人開発者
あらゆる個人開発者は Visual Studio Community を利用でき、無償または有償のアプリケーションを作成できます。
■ 組織
以下のシナリオでは Visual Studio Community を利用者数に制限なく利用することができます: 教室の研修環境、学術的調査、オープン ソース プロジェクトへの貢献
■その他のすべての利用シナリオ:
●エンタープライズではない組織において 5 ユーザーまでは Visual Studio Community を利用できます。
●エンタープライズ組織 (PC 台数 250 台以上または年商 100 万ドル以上) は上記の教室の研修環境、学術的調査、オープン ソース プロジェクトへの貢献以外では従業員や請負契約者ともに利用を認められません。
https://visualstudio.microsoft.com/wp-content/uploads/2017/05/Visual-Studio-2017-Licensing-Whitepaper-March-2017_Japanese.pdf

229デフォルトの名無しさん (ワッチョイ afe3-Ub1+)2018/10/24(水) 20:23:21.79ID:pUZreFeO0
リリース用のビルドマシンは1台で
他は全部expressや

ってやったらどうなるの?

230デフォルトの名無しさん (JP 0H2b-etxE)2018/10/24(水) 20:24:41.18ID:j9WcSB4FH
年商1億って結構安いよな
ケチ

231デフォルトの名無しさん (ワッチョイ 5f17-usPd)2018/10/24(水) 20:28:06.50ID:mBAz6liX0
>オープン ソース プロジェクトへの貢献
ってすごい曖昧な定義だよな

232デフォルトの名無しさん (ワッチョイ 2e9f-Dk9W)2018/10/24(水) 20:43:45.15ID:lYnaZc560
Javaは設定ファイル多すぎて挫折したけどdotnet new mvcですぐ始められるのは良いね
サーバーもいらないし

233デフォルトの名無しさん (アウアウウー Sa9f-tSmu)2018/10/24(水) 20:45:46.94ID:FS+T0WbLa
>>229
意味ない
ビルドだけなら.NETさえ入ってればmsbuild一発でできる

234デフォルトの名無しさん (オッペケ Srb3-zYpp)2018/10/24(水) 21:02:31.52ID:uTlH1PNGr
MSが委託請負が開発したCommunityでビルドしたアプリまで特定できるの?

235デフォルトの名無しさん (スプッッ Sd2a-w2rH)2018/10/24(水) 21:04:15.38ID:3/mFq1HRd
tiff画像をBitmapクラスを使って読み込みたい
読み込みはできたのだけど、1ピクセル辺りに要するバイト数が想定と違って困ってます

Bitmap b = new Bitmap(file)
BitmapData d = b.LockBits(new Rectangle(0,0,b.width,b.height),ImageLockMode.ReadWrite,b.PixelFormat)

b.pixelFormatがどうやらサイズが間違っているようなんだけども
ここってどう指定すべきなのでしょうか
2バイトのところ4バイトのARGBが入ってるのでサイズがめちゃことなってしまって

236デフォルトの名無しさん (ワッチョイ afe3-Ub1+)2018/10/24(水) 21:39:43.47ID:pUZreFeO0
>>233
Visualstudioのお金払う必要無いって言ってる?
ライセンスの話ね

237デフォルトの名無しさん (アウアウウー Sa9f-w+1b)2018/10/24(水) 21:55:47.42ID:0ETaBBAFa
>>235
tiff使ったことはないけどここ参考になったりしない?
https://teratail.com/questions/136266

238デフォルトの名無しさん (アウアウウー Sa9f-tSmu)2018/10/24(水) 22:47:55.18ID:FS+T0WbLa
>>236
ビルドだけが目的ならVSなんか全く必要ないよ

239デフォルトの名無しさん (スプッッ Sdc3-w2rH)2018/10/24(水) 23:48:44.98ID:sUnPoBu6d
>>237
回答があるようでない感じやねありがとう
ファイルの先頭ポインタから何番目ってをIntPtrで変換とかはStreamReaderでできるんかな?

240デフォルトの名無しさん (ワッチョイ 4fe3-4eGK)2018/10/25(木) 00:00:10.59ID:6CwUNa2j0
>>238
じゃ、Visualstudioって実質金出さんでもいいの?

241デフォルトの名無しさん (ブーイモ MM5b-az0l)2018/10/25(木) 00:02:26.32ID:bJEmGRRpM
>>240
開発生産性を度外視するならその通り

242デフォルトの名無しさん (ワッチョイ 3bd2-2TN5)2018/10/25(木) 02:14:51.71ID:LTnIM1RR0
最近ほぼVisualStudioCodeしか使ってないわ

243デフォルトの名無しさん (ワッチョイ d323-4x81)2018/10/25(木) 09:35:23.68ID:BG3PZmBX0
>>235
まずその想定してるっていうPixelFormatは正しいのかExplorerからプロパティ>詳細のビットの深さ見て確認する
> 2バイトのところ4バイトのARGBが入ってる
想定とBitmapDataでどっちがどっちなのか読み取れないけど1ピクセル2バイトってRGB565とかその辺なの?

244デフォルトの名無しさん (アウアウエー Sa93-hBDZ)2018/10/25(木) 11:59:33.09ID:dYjhTuUoa
たぶん直接の原因は>>237にある通りじゃないのかな
文面を見る限り質問者はあまり注意深い人に思えないしw

245デフォルトの名無しさん (アウアウエー Sa93-hBDZ)2018/10/25(木) 12:11:30.07ID:dYjhTuUoa
ところで、LockBitsってインスタンスメソッドなのに何で自分自身のPixelFormatを
引数で要求するんだろう。

246デフォルトの名無しさん (ブーイモ MM5b-az0l)2018/10/25(木) 13:07:15.03ID:r31i+JfIM
GDI+のAPIがそうなっているから、それを何も考えずに猿のようにラップしてそうなっただけ

247デフォルトの名無しさん (ワッチョイ ebd3-o90R)2018/10/25(木) 19:40:29.60ID:gTpJa4iN0
>>246
Q. では何故GDI+のAPIはそうなっているのですか?

A. The pixel format of the temporary buffer does not have to be the same as the pixel format of this Bitmap object.
[https://docs.microsoft.com/en-us/windows/desktop/api/gdiplusheaders/nf-gdiplusheaders-bitmap-lockbits]

248デフォルトの名無しさん (アウアウエー Sa93-hBDZ)2018/10/25(木) 20:44:40.21ID:n3Rz+F82a
>>247
フルカラーをトゥルーカラーにしたり、アルファーチャンネルを付け加えたり、
そういうフォーマットの変換機能も兼ねてるってことなのかな

MSDNのLockBitsの解説にはそんなこと書いてないけど。

不細工な設計だねw

249デフォルトの名無しさん (ササクッテロル Sp1f-g4wS)2018/10/25(木) 21:41:33.94ID:JIQ6DfsAp
>>248
> 不細工な設計だねw
なんで?

250デフォルトの名無しさん (アウアウエー Sa93-hBDZ)2018/10/25(木) 22:26:50.74ID:n3Rz+F82a
>>248
フォーマットの変換機能は別に持たせた方がスマートでしょ
(現にCloneでできるみたいだし)

少なくともLockBitsにPixelFormatを引数にとらないバージョンがあってしかるべき。

GDI+はやっつけで作ったのかこういう不条理な実装他でも見た記憶があるなあ

251デフォルトの名無しさん (ワッチョイ c7a1-JHIh)2018/10/25(木) 22:33:36.48ID:mF3BZxvh0
GDI+は処理の遅さが致命的

252デフォルトの名無しさん (ササクッテロル Sp1f-g4wS)2018/10/25(木) 23:29:37.31ID:JIQ6DfsAp
>>250
ソース元のフォーマットに制限されず指定のフォーマットで読み書きできた方が普通に便利でしょ
別のビットマップが欲しいわけじゃないのにCloneを仲介する方が意味わからん
(LockBits自体は自動的に複製を作るようなもんだけどね)

253デフォルトの名無しさん (ワッチョイ 579b-42fi)2018/10/25(木) 23:30:45.76ID:oh52xQKG0
cbo1のテキストと同じものを3行目の3列目から右に同じものを見つかるまで探し、見つかったセルから下へループし、「※」印がある場合のみ「※」印の行の1列目の氏名を配列に入れ、cbo2にADD。
注)入れる際に同一氏名がすでに配列にある場合除外。
これをやるために、closedxmlで書いて見ましたがちょっと処理が遅い。

コードの書き方的には右にforで最終列までループ処理→ifで一致
forで一致した列の最終行まで下へループ処理→ifで一致したら配列に詰め込む。

現在ここで重複排除のやり方が分からないのでとりあえず全て配列にいれてます。
どうやって、書くのが最善ですか?

ふらっと C#,C♯,C#(初心者用) Part140 	YouTube動画>2本 ->画像>15枚

254デフォルトの名無しさん (ワッチョイ 4fe3-4eGK)2018/10/26(金) 00:14:26.87ID:mydHUNdj0
>>253
格納するときに現在あるやつ全部とダブリチェックでいーじゃん

255デフォルトの名無しさん (アウアウウー Sa1f-az0l)2018/10/26(金) 00:36:10.18ID:pE8f1AMra
>>253
低い抽象度でものを考えすぎている
お前がやりたいのはExcelの操作を自動することではなくて目的とする結果を得ることだろ?
まず要件を明確にし、それをそのままコードに落とすだけだ
カーソルだのセルだのは最後の最後に出てくるどうでもいい瑣末な部分だ

256デフォルトの名無しさん (ワッチョイ a141-uqH6)2018/10/27(土) 08:30:41.59ID:F8L6v78S0
複数の.csvファイルを一つの.xlsxファイルに簡単に纏められる?

257デフォルトの名無しさん (ブーイモ MMf3-DBFP)2018/10/27(土) 08:55:21.44ID:BNqfM2zkM
VBAでできることはC#でも全く同じ方法でできる
C#ではなく "VBA CSV 複数 結合" でググったら一発でサンプルは出てくる
そして "C# Excel 操作" でググって出てきたサンプルを真似してC#に機械的に書き直せ
それ以上細かいことはスレ違い

258デフォルトの名無しさん (ワッチョイ 4fe3-4eGK)2018/10/27(土) 09:14:14.56ID:if75aWaZ0
>>256
できる

259デフォルトの名無しさん (ブーイモ MMbf-QYDm)2018/10/27(土) 11:23:15.72ID:AkygrdAXM
>>256
やればできる

260デフォルトの名無しさん (オッペケ Sr59-uqH6)2018/10/27(土) 15:22:42.49ID:GAIyH11Qr
やれば出来るだろうが、手間は掛けられん。
簡単に出来るなら、ちょっと考えてみるかな。

ありがとう。

261デフォルトの名無しさん (ワッチョイ 5b9f-3knh)2018/10/27(土) 15:42:55.29ID:QwPOuwmq0
>>256
テキストの状態で全ファイル連結して一つのcsvファイルを作り、それをExcelで開いてxlsxで保存。

というローテクな方法でもできる。

262デフォルトの名無しさん (ワッチョイ 4fe3-4eGK)2018/10/27(土) 15:57:45.83ID:if75aWaZ0
>>260
普通にc#からエクセルファイル操作できるから

263デフォルトの名無しさん (アウアウウー Sa1f-DBFP)2018/10/27(土) 15:58:58.91ID:ntx2HiKDa
便所掃除ができることをドヤ顔で言わなくてよろしい

264デフォルトの名無しさん (ワッチョイ cdeb-7TBo)2018/10/27(土) 22:41:19.36ID:Qgr0BHqv0
>>262
お前の「普通に」って何だよwww
初心者用なんだしやり方を詳しく教えろやくださいませ

まさかopenXMLのAPIのことじゃないよね

265デフォルトの名無しさん (ワッチョイ 35ad-JHIh)2018/10/27(土) 23:31:57.17ID:/aRXu6mM0
VBEでC#書けたりするの?

266デフォルトの名無しさん (ワッチョイ 8b8a-cxcD)2018/10/27(土) 23:56:23.88ID:cqzal98J0
C#のクラスを考えるときにテストのことを考えるとさ
privateの関数や変数は持たない方が望ましいと聞いたんだがそこまで意識してプログラミングしてる?
役割を逸脱してる可能性が高いと言われてるのだがコード的にそうはさせない方法とかあるのだろうか

267デフォルトの名無しさん (ワッチョイ eb8a-o90R)2018/10/28(日) 00:27:12.07ID:hf5/u8050
えなにそれ
publicな変数にしろってこと?

268デフォルトの名無しさん (ワッチョイ 8b8a-cxcD)2018/10/28(日) 01:01:32.10ID:sLs9tkqy0
>>267
全部パブリックにしろって話ではないと思うのだが、
クラスとしてちゃんと機能してるかをテストしやすくするものとして確認しやすいように設計をするようにと言われた
アクセッサを準備しろってことなのか
、protectedで作って継承してテストをしやすくしろってことなのかはわかってない

269デフォルトの名無しさん (ワッチョイ 3bd2-2TN5)2018/10/28(日) 01:01:48.04ID:z9u8vCUJ0
>>266
なにそのキチガイ発言

270デフォルトの名無しさん (ワッチョイ 8b8a-cxcD)2018/10/28(日) 01:05:59.90ID:sLs9tkqy0
>>269
たぶん本質は内部所持して扱う変数を極力減らしましょうってことなんかなって思ってる
クラスを使うのにA・B・Cを事前に呼び出して内部変数の設定をしないと使えないですとかだと
バグのもととかになるから条件縛りを減らしましょうとかってことなんじゃないかと

271デフォルトの名無しさん (ワッチョイ 4fe3-QYDm)2018/10/28(日) 06:10:51.67ID:e0hkCJOP0
全部public staticにしろ

272デフォルトの名無しさん (ワッチョイ f7a5-Az/2)2018/10/28(日) 08:05:20.34ID:3RT+wTpd0
日曜プログラマです
理屈に疎いので教えてください
Win32APIをマーシャリングしてプログラムを作成中なのですが
コールバックをデリゲートでやってるので
これは必然的にFormとは別のスレッド(マルチスレッド)という理解で正しいでしょうか?
このコールバックからの信号をトリガーにForm上のコントロールを触ると
「別スレッドからアクセスした」と怒られます
これを回避するために別のデリゲートを挟んでコントロールを触っていますが
これ以外に方法ないでしょうか?
デリゲート挟むと時々信号取りこぼすみたいで
上手くコントロールが反応しないことがあるんで改良したいのです

273デフォルトの名無しさん (ワッチョイ 81a5-E7Ae)2018/10/28(日) 08:25:18.25ID:SibvNmKY0
どうでもいいけどココって本当に初心者用スレなのかね

274デフォルトの名無しさん (ワッチョイ ebd3-o90R)2018/10/28(日) 08:56:08.45ID:kvhoQsiz0
>>272
> コールバックをデリゲートでやってるので
> これは必然的にFormとは別のスレッド(マルチスレッド)という理解で正しいでしょうか?

どこのなんのコールバックなのかこっちは知らんのだが
「別スレッドからアクセスした」と怒られるんならそうなんでそ

> これを回避するために別のデリゲートを挟んでコントロールを触っていますが

デリゲートを挟んでとあるけど、前提としてコントロールを触る処理はInvokeメソッドにちゃんと投げてる?

275デフォルトの名無しさん (ワッチョイ bbb3-QdD5)2018/10/28(日) 10:44:38.69ID:zjm6bfwn0
すみません、c#の初心者です。UnityでRPGを製作しているのですが、質問があります。

if (条件式1) {
条件式1が真の時のダメージ処理;
...;
}else if(条件式2) {
条件式1が偽で条件式2が真の時のダメージ処理;
...;

これに、ダメージを999以下に抑えたいので<=999を入れたいのですが、どこに入れればいいのでしょうか?

簡単な質問で申し訳ありませんがよろしくお願いします。

276デフォルトの名無しさん (ワッチョイ ff9a-wZW4)2018/10/28(日) 10:51:17.84ID:JM6DGBKw0
>>275
ダメージ処理終わった最後
int dmg=0;
if (条件式1) {
条件式1が真の時のダメージ処理;dmg+=a;
...;
}
}else if(条件式2) {
条件式1が偽で条件式2が真の時のダメージ処理;dmg+=b;
...;
}
dmg=dmg>999?999:dmg;//またはif (dmg>999) dmg=999;

277デフォルトの名無しさん (ワッチョイ bbb3-QdD5)2018/10/28(日) 10:59:20.84ID:zjm6bfwn0
>>276
早速のご回答ありがとうございます!やってみます!

278デフォルトの名無しさん (ワッチョイ bbb3-QdD5)2018/10/28(日) 11:20:25.94ID:zjm6bfwn0
無事反映されました!ありがとうございます。

279デフォルトの名無しさん (ワッチョイ f7a5-Az/2)2018/10/28(日) 11:48:33.54ID:3RT+wTpd0
>>274
Invokeメソッドに投げるとはこういうことでしょうか?
private void _TS()
{
TextShowDelegate dlgTS = new TextShowDelegate(TextShow);
IAsyncResult ar1 = BeginInvoke(dlgTS, null);
}
Tipsの寄せ集めでやってるので理屈はあまりよくわかってませんwww

280デフォルトの名無しさん (ワッチョイ 6bb8-3KA+)2018/10/28(日) 11:54:36.96ID:Lzmpvi1g0
FXのEA(自動売買ツール)を提供しています。
興味がありましたら見てみてください。
http://hbgfvtgvfvr.weblog.to/

281デフォルトの名無しさん (ワッチョイ 8b8a-cxcD)2018/10/28(日) 13:12:56.47ID:sLs9tkqy0
>>271
クラス化してる意味がほぼ無さそう....

コンストラクタで引数渡してメンバ変数にデータを覚えさせて使うのと
ことあるごとに内部関数の引数にデータを渡すのってどちらのが良いのだろう?
影響範囲とか小さくすることを考えると後者なのかなって思うけども

282デフォルトの名無しさん (ワッチョイ 8f9f-cwcA)2018/10/28(日) 16:02:02.80ID:gvAysy2V0
>>281
あるメソッドで使うからコンストラクタで渡すって考え方自体おかしいかな
メンバはそのクラスが持つ必要があるから持っているわけでメソッドで使うから持っている訳では無い
例えば体クラスでBMIを計算するときは体重、身長は体情報だからクラスのメンバで持たせる
身長クラスでBMI計算するときは身長はメンバで持って体重はメソッドの引数で渡す

283デフォルトの名無しさん (ワッチョイ 8b8a-cxcD)2018/10/28(日) 17:25:54.20ID:sLs9tkqy0
>>282
クラスの役割的にはそれであってるのだと思う
聞きたかったのは例えばその身長クラスに特化した話で
身長をそもそもメンバに持つ必要性はあるのだろうか?って話

284デフォルトの名無しさん (ブーイモ MM5b-DBFP)2018/10/28(日) 17:38:11.82ID:ISWax1KhM
何か正しいかはユースケース次第
クラス単独での設計の正解なんか存在しない

285デフォルトの名無しさん (ワッチョイ c92b-7TBo)2018/10/28(日) 18:47:58.26ID:VnMv7Anc0
身長クラスではなくBMI計算機クラスがいいのかな

286デフォルトの名無しさん (ワッチョイ 3b76-7TBo)2018/10/28(日) 20:53:14.99ID:c1Io2A4L0
>>279
https://qiita.com/mounntainn/items/8a2b4f1cf47bd02657f3

自分は上のに近いのでやってる
InvokeRequiedで判定してスレッドセーフにするのが定石みたいだね

287デフォルトの名無しさん (ワッチョイ 05a5-Az/2)2018/10/29(月) 11:51:55.81ID:IQ5w1AIM0
>>286
情報ありがとうございます
勉強させていただきます

288デフォルトの名無しさん (ワッチョイ 5781-dYvX)2018/10/29(月) 13:34:23.83ID:09l7CDuO0
C#ではnumpy.randomみたいにSeed値を指定するようなことってできるんでしょうか?

289デフォルトの名無しさん (ブーイモ MM5b-DBFP)2018/10/29(月) 13:36:55.22ID:f3zS/OjjM
できる

290デフォルトの名無しさん (スップ Sd37-eYkk)2018/10/29(月) 14:41:55.61ID:xwSUZkbbd
とても初歩的な質問なんですが

protected AbBb _abbb;

こんな感じのプログラムってなんていいますか?

291デフォルトの名無しさん (ブーイモ MM5b-DBFP)2018/10/29(月) 14:44:34.42ID:f3zS/OjjM
クソコードというんじゃない?
フィールドをprotectedにしているプログラムはC#では一般的にはそう呼ばれる

292デフォルトの名無しさん (スップ Sd37-eYkk)2018/10/29(月) 14:47:11.97ID:xwSUZkbbd
>>291
なんていうか、_と書くことで別のところから持ってこれるようになる方法のことです

293デフォルトの名無しさん (ワッチョイ d323-4x81)2018/10/29(月) 14:52:04.17ID:oAZGLoeZ0
_から始まろうがそうでなかろうがC#では普通の識別子であって言語的に意味の違いはない
メタ的に意味はあるかもしれんがそれは文脈次第

なのでもうちょっと文脈を示してもらわないと意味分らん

294デフォルトの名無しさん (ワッチョイ d3eb-o1DS)2018/10/29(月) 14:52:15.80ID:ZsrJ9icq0
>>292
DIっていうんだよ

295デフォルトの名無しさん (ワッチョイ c9c3-9OwH)2018/10/29(月) 20:42:23.22ID:1yFXm6Bf0
>>294
初心者相手なんだから略してない名称も書いてあげたら

296デフォルトの名無しさん (ワッチョイ 57e8-7TBo)2018/10/30(火) 17:44:38.38ID:Vdu6vWjQ0
C#で組込み系ってできるの?

297デフォルトの名無しさん (オイコラミネオ MM09-phox)2018/10/30(火) 17:54:37.52ID:HzRny5oEM
最近は可能だが案件はなさげ
デバイスは限られるが自作なら余裕

298デフォルトの名無しさん (ワッチョイ 57e8-7TBo)2018/10/30(火) 17:59:29.99ID:Vdu6vWjQ0
>>297
案件あって戸惑ってる
また1から学ばないといけないのか...

299デフォルトの名無しさん (ブーイモ MMbf-DBFP)2018/10/30(火) 18:45:34.87ID:E+8/TrgCM
C#で実務の組み込みって制御系だろ?
変なプロトコルで機器と通信する必要があるだけで、普通のWinPCだぞ

300デフォルトの名無しさん (アウアウウー Sa5d-SHeU)2018/10/30(火) 19:37:58.29ID:cJDinX9aa
ググったら.NET Micro Frameworkってのがあるらしい
どのくらい使われているかは知らん

301デフォルトの名無しさん (オイコラミネオ MM09-phox)2018/10/30(火) 20:17:27.88ID:HzRny5oEM
ラズパイにwindows IOT入れてUWPで作ったり unityからUWP吐くとかもできるぽよ
従来の組み込みの世界とは別物だろけど

沼っぽいけど実績になれば
キャリア的には面白いと思う

302デフォルトの名無しさん (ワッチョイ 9f06-eYkk)2018/10/31(水) 02:11:45.22ID:90i4Cfzn0
c#って何から覚えてけばいいのだろう?
今の知識としては、インスタンス化は何かnewする奴だっけ? 的なレベル、何というか世界が広大すぎるしネットで調べてもサイトは何書いてんのか分からないし……わりぃ、やっぱつれぇわ

303デフォルトの名無しさん (ワッチョイ ff81-42fi)2018/10/31(水) 02:34:46.39ID:YeNkIpaX0
作りたいものを作る
その過程で必要なものだけを調べる
道具の使い方だけ勉強しても意味がない
道具は使うためにある

304デフォルトの名無しさん (ワッチョイ e3d2-8L5D)2018/10/31(水) 03:38:24.10ID:OyhA4eFa0
>>302
C#は後発なだけあって負の遺産みたいのが少ないから
まずは自分に必要なところから覚えていけば大丈夫
やりたいことをやってるうちに疑問に思ったところを調べていけばおk

305デフォルトの名無しさん (ワンミングク MM3b-E7Ae)2018/10/31(水) 06:18:25.29ID:AV1WSlFbM
そのうち道具を使う為の道具を作り始める
負の遺産が溜まっていく

306デフォルトの名無しさん (ワッチョイ e3d2-pP8n)2018/10/31(水) 06:49:24.56ID:nRECWsn80
ラムダ式というのがよくわからないので教えてください
読んでる入門書に例えば普通のメソッドで
int add(int n){return n+2};
とあればラムダ式なら
n=>n+2;と書けるとあるのですがどうやって使えばいいのか?が書かれていません
どのように使えば良いのでしょうか?何が便利になってるのかも?です。

307デフォルトの名無しさん (ドコグロ MMcf-YAQH)2018/10/31(水) 07:13:16.37ID:QxiZIYdtM
>>306
なんか色々説明が必要な時点でもうあんまよくない臭いしてるだろ?

308デフォルトの名無しさん (ワッチョイ e393-phox)2018/10/31(水) 07:29:35.90ID:xX3V2hUr0
間に合わせの説明として利便性をいうと
わざわざ関数addを明示的に作らなくてもその場で関数を作れる=関数名もつけるまでもない匿名関数として便利
ついでに引数と戻り値の型も省略できるからLINQの述語やプロパティ値をシンプルに記述できる
あとMVCのrazorでもヘルパーへの引数に、プロパティ値ではなくプロパティを渡すのに使われたり

309デフォルトの名無しさん (ワッチョイ ebd3-o90R)2018/10/31(水) 07:57:27.30ID:AQSs4bkC0
>>306
書く方も別の場所にいちいち関数定義しなくて良い
読む方もそこに処理の内容が書いてあった方が良い

…とも一概に言えない場面は多いので、自分がコーディングしてて
脳が「ここラムダ式で書きたい」と自然に出てくるまでは封印しててもええんやで


void Do() {
 int buffer = {1,2,3,4,5};
 var q1 = buffer.Where(Even).Select(Plus2);
 var q2 = buffer.Where(x => x % 2 == 0).Select(x => x + 2); // q1とやってることは同じ
}

bool Even(int x) { return x % 2 == 0; }
int Plus2(int x) { return x + 2; }

310デフォルトの名無しさん (アウアウエー Sa93-hBDZ)2018/10/31(水) 12:29:27.76ID:NuHnUQr6a
>>306
デリゲートは理解してるの?
まずそっちを先に理解しないと、いきなりラムダ式を理解するのは無理ですw

311デフォルトの名無しさん (ワッチョイ e3d2-o1DS)2018/10/31(水) 17:27:52.66ID:nRECWsn80
>>310
すいません理解できてないです
というかまだ読んでる本で説明がなされていないようです…
この章を取り敢えず読み切った後また読み返せば理解できるってことですね
LINQとラムダ式?とやらを使わずにメソッド使えばいいやって認識だとこの先苦労しますか?
回答くださった方ありがとうございます

312デフォルトの名無しさん (オイコラミネオ MM09-phox)2018/10/31(水) 17:53:59.42ID:kfZUY5yUM
ちょうど600ページのよさげな本が出たぞ

313デフォルトの名無しさん (アウアウエー Sa93-hBDZ)2018/10/31(水) 18:24:52.71ID:NuHnUQr6a
>>311
LINQはともかく、ラムダ式は必須の知識でしょうね。
少なくとも使えるとコードの書き方に大きな差が出るのは間違いない

ただ、デリゲート自体が初心者には理解しづらい概念とも思うので
よく分からない場合は固執せず後回しにした方がいいかもしれないね

本質的にはそんなに難しい話じゃないから、最初分からなくても時間が解決するはず

314デフォルトの名無しさん (ワッチョイ ebe3-YAQH)2018/10/31(水) 18:35:27.38ID:hTEse2SW0
>>313
移植するとき面倒だから使わないで

315デフォルトの名無しさん (オイコラミネオ MM09-phox)2018/10/31(水) 18:45:54.15ID:kfZUY5yUM
LINQもRxも他言語に移植されまくりだが

316デフォルトの名無しさん (ワッチョイ 57a5-Az/2)2018/10/31(水) 19:35:13.26ID:VqQq8o9J0
>>310
へえ、ラムダ式はデリゲートが基本にあるのか

317デフォルトの名無しさん (ワッチョイ 1b7e-JHIh)2018/10/31(水) 20:19:37.23ID:hVPInHiK0
あるいは匿名メソッドを指して言ってるとか
記述が簡潔というのもあるけど肝はクロージャではなかろか

318デフォルトの名無しさん (ラクッペ MMaf-65t9)2018/10/31(水) 20:57:39.60ID:yW33Sn/GM
お前の知ってる言語とは限らんぞ
クソ会社特有の独自スクリプトとかな

319デフォルトの名無しさん (ワッチョイ 1f8a-3mJb)2018/10/31(水) 21:09:44.33ID:N9TdgOC+0
>>315
MJD? KWSK

320デフォルトの名無しさん (ワッチョイ 8b8a-cxcD)2018/10/31(水) 21:31:50.61ID:GKybvSyw0
リンクってのがよく理解できていない

321デフォルトの名無しさん (ワッチョイ a1b3-I0/O)2018/10/31(水) 23:31:16.71ID:Q2P2Jyf/0
SQLはひらめくけど、リンクはひらめかない

322デフォルトの名無しさん (ワッチョイ 35eb-cQPT)2018/10/31(水) 23:45:42.03ID:kwqElk+D0
linqより理解しやすいメカニズムも無いと思うけど

323デフォルトの名無しさん (ワッチョイ afeb-o1DS)2018/10/31(水) 23:51:55.59ID:lqvIUA6e0
ラムダ式を理解するのにデリゲートなんて要らねえのにな
一体どんな頭してんだ

324デフォルトの名無しさん (ワッチョイ b693-a/N+)2018/11/01(木) 04:47:03.77ID:7mP44JOI0
タイプセーフな関数ポインタやコールバック、匿名関数で説明してるけど

それで通じないと どこから説明すれば良いかたいへん

デリゲートからの説明はしんどい…

325デフォルトの名無しさん (ワッチョイ b693-a/N+)2018/11/01(木) 04:56:16.11ID:7mP44JOI0
>>319
Wikipediaにもいくつか乗ってるよ

326デフォルトの名無しさん (ワッチョイ 4e80-mY15)2018/11/01(木) 07:48:57.67ID:PBz6MbCm0
Linq は、Java のStream、Ruby on Rails と同じ。
関数型

メソッドチェーンしていって、一番最後にレコードを取得する。
遅延実行

ずっと、フィルター・SQL 文だけを組み立てて、一番最後だけアクセスする

327デフォルトの名無しさん (スップ Sd5a-rxrj)2018/11/01(木) 11:43:18.05ID:Ezzdmjted
>>323
元の質問が理解は出来るけど使い方がわからないって話だからな
FuncやActionか、メソッドのデリゲート引数ぐらいでしか使わないしあながち間違えてない

328デフォルトの名無しさん (ブーイモ MM7f-0Z6C)2018/11/01(木) 11:46:58.88ID:DtT8Cv0dM
デリゲートはイベントにも使うよ
そしてそれこそがデリゲートを理解しにくいものにしている最大の原因でもある

329デフォルトの名無しさん (スップ Sd5a-rxrj)2018/11/01(木) 13:53:28.62ID:Ezzdmjted
ラムダ式を何処で使うかの話でデリゲートを何処で使うかについてはふれてないよ
デリゲートの使い道でいうと非同期実行するために使うとか色々ある

ラムダ式に関しては、FuncやActionかメソッドの引数ぐらいでしか使ってないと思うんだけど他になんかある?

330デフォルトの名無しさん (ワッチョイ 3e23-K1l+)2018/11/01(木) 14:16:07.14ID:aKMxEeDc0
ローカル関数がなかった時代のローカル関数代わり

331デフォルトの名無しさん (アウアウウー Sac7-bp25)2018/11/01(木) 18:07:39.71ID:0xRkJrzka
式木

332デフォルトの名無しさん (ワッチョイ 97b3-zV7r)2018/11/01(木) 18:49:47.61ID:ECytQ9s20
ラムダ式使ったのはfind関数のときくらいかな
それ以外ほぼ使ったことない

333デフォルトの名無しさん (ワッチョイ 4ee8-edRK)2018/11/02(金) 00:13:13.50ID:cBjseW3X0
ワシの波動球はラムダ式まであるぞ

334デフォルトの名無しさん (ワッチョイ f68a-ZA70)2018/11/02(金) 03:44:16.47ID:hToiCYAd0
Postgresを、SQLiteみたいにDBファイルとコネクタだけで使うにはどうすればよいでしょうか?

335デフォルトの名無しさん (ワッチョイ caeb-ZA70)2018/11/02(金) 13:32:10.56ID:1IoIYp5Z0
無理だろそりゃ

336デフォルトの名無しさん (ワッチョイ 1ad2-vbIu)2018/11/02(金) 13:46:37.38ID:n/9UgDRl0
>>335
portable版使ったことないの?

337デフォルトの名無しさん (ワッチョイ caeb-ZA70)2018/11/02(金) 13:51:48.43ID:1IoIYp5Z0
>>336
>コネクタだけ
って書いてるからどうにもなんないよ

338デフォルトの名無しさん (ワッチョイ 1ad2-vbIu)2018/11/02(金) 13:55:23.85ID:n/9UgDRl0
>>337
なんで?

339デフォルトの名無しさん (ワッチョイ caeb-ZA70)2018/11/02(金) 13:56:59.71ID:1IoIYp5Z0
>>338
じゃあ俺には無理だから、あんたが教えてあげたら良いんじゃないの

340デフォルトの名無しさん (スップ Sdba-mm7G)2018/11/02(金) 17:21:36.81ID:ouVO3wBCd
namespace Drawlinetest
{
public partial class Form1 : Form
{
PictureBox pbox = new PictureBox();
Point pt = new Point(-1, -1);
public Form1()
{
InitializeComponent();
pbox.Location = new Point(0, 0); pbox.Size = new Size(500, 500);
this.Controls.Add(pbox); this.ClientSize = pbox.Size;
pbox.Image = new Bitmap(pbox.Width, pbox.Height);
pbox.MouseDown += MD;
}
private void MD(object sender, MouseEventArgs e)
{
Point p = e.Location;
if (e.Clicks > 1) { pbox.Image = new Bitmap(pbox.Width, pbox.Height); return; }//ダブルクリックで画像リセット
int x = pbox.Width - 1, y = pbox.Height - 1;
if (pt.X < 0 || pt.X > x || pt.Y < 0 || pt.Y > y) { pt = p; return; }
Graphics g = Graphics.FromImage(pbox.Image);
g.DrawLine(Pens.Black, pt.X, pt.Y, p.X, p.Y);
pbox.Refresh(); g.Dispose(); pt = p;
}
}
}

前スレにあったのを参考に400角にピッチ20の方眼を作りました。
クリック時に近い点を取って連続線にしたい場合どうすればいいですか?

341デフォルトの名無しさん (ワッチョイ 4e9a-Y/6i)2018/11/02(金) 17:41:50.22ID:KsjOw3TM0
>>340
「近い点」の定義は?
座標差が10以内の場合を0に近いとした場合
p.X=p.X-p.X%20+((p.X%20)>10?20:0)
Y座標にも同じような計算式を適用
でそのコピペしたところに組み込むときは画像範囲外の座標を指定した場合はリセットされるので、その辺も改変しないと

342デフォルトの名無しさん (ワッチョイ fac3-N6i4)2018/11/02(金) 17:44:00.81ID:1rdv+QTJ0
リージョン

343デフォルトの名無しさん (アウアウエー Sa52-uVrJ)2018/11/02(金) 18:39:24.09ID:Zmz30XyOa
>>340
マウス座標に一番近い格子点の座標を求める方法って意味なら、

(1) マウス座標を囲む4つの格子点を返すメソッドを書く(マウス座標が格子点上の
場合に何を返すかは適当に決めて)

(2) マウス座標と任意の座標の距離(の2乗)を求めるメソッドを書く(ラムダ式でいい)

(3) LINQのOrderByでも使って(1)と(2)から求められる

344デフォルトの名無しさん (アウアウエー Sa52-uVrJ)2018/11/02(金) 18:43:56.30ID:Zmz30XyOa
今気づいたけど、MSDNのリファレンス、無茶苦茶見づらくなってない?
拡張メソッドはどこで見られるのこれ?
VS2010時代の人力で翻訳されたドキュメントも読めなくなってるし....

MSっていらんことする天才だなw
Googleもそうだけど

345デフォルトの名無しさん (ブーイモ MMba-0Z6C)2018/11/02(金) 18:48:39.64ID:3EaYIZ29M
「英語で読む」が付いて格段に読みやすくなったわ
英語読めない人は大変だなw

346デフォルトの名無しさん (ワッチョイ 37e3-aMe6)2018/11/02(金) 19:00:33.18ID:YQK0i7tX0
サンプルコードがないメソッドを報告するって付けてよ

347デフォルトの名無しさん (オイコラミネオ MMe3-a/N+)2018/11/02(金) 22:00:12.56ID:qBR9F2NOM
chromeの翻訳は実用十分
MSDNは昔より酷いよな
英語です読むオプションが便利やね

348デフォルトの名無しさん (ワッチョイ 1ad2-vbIu)2018/11/02(金) 22:05:20.63ID:n/9UgDRl0
>>344
docsじゃなくて?

349デフォルトの名無しさん (ワッチョイ 97b3-zV7r)2018/11/03(土) 01:49:56.08ID:m4AFUYcO0
>>340
数学の問題かな
マウスの座標を20で割って商nと余りを求める
余りが0<10
x=20n
余りが10<20
x=20(n+1)
yも同様にして座標が求まる
2点の座標p1,p2に線を引く
これの繰り返し 

350デフォルトの名無しさん (アウアウエー Sa52-uVrJ)2018/11/03(土) 02:19:46.79ID:++9uwWwJa
グリッドならわざわざ距離なんか求めずX軸Y軸独立に最近傍検索しても同じことか
そりゃそうかw

351デフォルトの名無しさん (ワッチョイ 4ea5-PRUr)2018/11/03(土) 07:55:15.80ID:SApjZlYC0
>>345
コンストラクタ、プロパティ、方法、イベント
「方法」ってなんだ?
と思ったらメソッドかよ!
こんなクソ訳付けられるなら英語の方がマシだなwww

352デフォルトの名無しさん (ワッチョイ 5b80-Q1ft)2018/11/03(土) 08:03:39.30ID:rSl2Ac3O0
ついにMSもバカをきりすてはじめたか
いちいちバカの相手をしてたら大変だからな

353デフォルトの名無しさん (ワッチョイ 4e81-vkTM)2018/11/03(土) 11:23:12.64ID:+zJSXhjW0
方法はさすがに草

354デフォルトの名無しさん (アウアウエー Sa52-0Z6C)2018/11/03(土) 12:53:13.50ID:q2N3VeHVa
あえて誰にでも間違いがわかるバカな翻訳を残すことで、
俺達はもう英語の読めないバカジャップを相手にする気はない、英語を読むか廃業しろ、
というメッセージを伝えようとしているのだろう

355デフォルトの名無しさん (ワッチョイ 7f2b-MyS3)2018/11/03(土) 13:25:00.49ID:XovyTjqY0
デバッグ用のビルドはこの設定ファイル、リリース用のビルドの時はあの設定ファイルの値を組み込みたい
ってときはどうやるの

356デフォルトの名無しさん (ブーイモ MM26-0Z6C)2018/11/03(土) 13:37:41.08ID:N8ATSODSM
>>355
ビルドで切り替えるなら #if DEBUG で十分
Web開発で使われるような動的な設定の切り替えは、同じビルドを環境に応じた異なる設定で実行したいというニーズにおいて使用するもの
Webだと、ビルドしてステージング環境でテストしてそのまま同じものを本番にデプロイするんだよ

357デフォルトの名無しさん (スプッッ Sd5a-7KdF)2018/11/03(土) 17:26:27.47ID:Kq73EWlFd
デリゲートって関数登録して好きなタイミングでそいつ呼べますよって使い方のイメージだけども違うんかね

358デフォルトの名無しさん (アウアウエー Sa52-uVrJ)2018/11/03(土) 18:29:16.11ID:SHI5qsHHa
>>357
前にも書いた気がするけど、本質はデリゲートっていう概念を導入することによって
デリゲート型の変数が作れるってことだと思うよ。

C#からデリゲートがない言語を見た場合、それは
デリゲートのリテラル( = メソッド)の定義は出来るのにデリゲートの変数の宣言はできない不自由な世界に見える

359デフォルトの名無しさん (ワッチョイ f3d6-zV7r)2018/11/03(土) 23:43:38.27ID:QP19bU4J0
数作ってる内に最初の設計こそが一番大事な気がしてきた
が、それで最後まで行けた試し無し

360デフォルトの名無しさん (アウアウエー Sa52-0Z6C)2018/11/04(日) 00:27:59.79ID:Ujv6OCQma
設計においては全体像を常に持ちながらもフェーズに応じて必要以上に詰めすぎることなく適切な抽象度に留めるバランス感覚が重要
厳格なウォーターフォールだろうとアジャイルだろうとそこは同じで、最初から細部を詰めようとするのは確実に時間の無駄

361デフォルトの名無しさん (ワッチョイ 4e81-WT4u)2018/11/04(日) 00:56:11.57ID:ycEmTONY0
設計力を高める(学習)するのに適切な書籍またはサイトがあれば教えてください。

362デフォルトの名無しさん (ワッチョイ a3d2-2KtO)2018/11/04(日) 00:56:42.60ID:316Hfb/o0
まあそうなんだけど、前工程が適当だと後工程が確実に割を食うじゃん。
どこら辺にいい加減があるんだろうな。

363デフォルトの名無しさん (ブーイモ MM26-0Z6C)2018/11/04(日) 01:09:06.89ID:xCAdckZOM
>>361
ちょっと古いけどこれなんかわりと有名
https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ff650706(v=pandp.10)

364デフォルトの名無しさん (ブーイモ MMba-cm4e)2018/11/04(日) 10:06:20.84ID:TRDIKx2zM
権力のあるところがざっくりやって、弱い連中に細かいとこ押し付ける。

365デフォルトの名無しさん (ワッチョイ 5ba5-PRUr)2018/11/04(日) 10:54:42.18ID:iKmrkyIQ0
ユーザーなども含めた他人の意見をフィードバックしようなどと
色気を出した瞬間、どこまで詰めるかなんて分からなくなる
結局一人で設計してどこまでやるかなんて一人で決断するしかない
アプリなんて自分が使って満足ならOK

366デフォルトの名無しさん (スプッッ Sd5a-7KdF)2018/11/05(月) 15:59:03.10ID:QhIuz4Ucd
disposeを継承したクラスのインスタンスのデストラクタが参照があるときに呼び出されてるのだけど
そんな現象に見回れた人居ませんか
disposeの継承は関係ないかもしれないけどそのクラスの作りは今そうなってます

367デフォルトの名無しさん (ブーイモ MM7f-0Z6C)2018/11/05(月) 16:25:54.17ID:9y9XQ9xCM
ありえない
今更CLRのそんな基本的なところがバグってるなんて考えられないから、バグがあるのは間違いなく貴方の目か頭の方です

368デフォルトの名無しさん (スッップ Sdba-qaUX)2018/11/05(月) 17:39:02.66ID:ci20RGBId
>>340
これって前打った点と新しい点を線引いてるけど、前の点はどう記憶してるんですか?前の点にもう一個情報を持たすのは可能ですか?
線が被った時、線をずらして書こうと思ってるんですけど、
例えば↓2マス↑6マスとクリックして書いたとき被るのをちょっと右にずらして書くのは出来たんですけど、
条件をpt.X==p.X && pt.Y<p.Y
だと変わって欲しくないときもズレる。

ズラす条件は直角で、始点を0を基点として
↓に引いた時は左
↑に引いた時は右
←に引いた時は上
右に引いた時は↓

369デフォルトの名無しさん (ワッチョイ 4e9a-Y/6i)2018/11/05(月) 19:35:41.47ID:W+eHh5+20
>>368
>前の点はどう記憶
フィールドのPoint pt
描画範囲が被る場合の判定がちょっと思いつかないけど
前の点にもう一個情報じゃなく描画した点の位置を全部記憶してからになる気がする
線描画を半透明にして被った場合にもわかるようにとか駄目なの?

370デフォルトの名無しさん (ワッチョイ 9a8a-7KdF)2018/11/05(月) 23:06:04.46ID:CiuGU7fm0
>>367
ありがとう
めっちゃ上位層でインスタンス破棄されてました

371デフォルトの名無しさん (ワッチョイ 97b3-zV7r)2018/11/06(火) 00:58:16.86ID:2irnAq2B0
>>368
pt = pが前の点の記録

372デフォルトの名無しさん (ワッチョイ 039f-MyS3)2018/11/06(火) 16:46:04.32ID:KNaAB8gP0
async/awaitが難しすぎる
一見簡単そうに見えるんだけど、結構注意深く使わないとこれはまるよね
(Web見ていると使い方で注意事項多いし)

これって、MS的には何を目指したものなの
最初見た時は、初心者向けかなと思ったら偉い難しいのでびっくりした
BackgroundWorkerなんて、結構納得しやすかったのに

373デフォルトの名無しさん (アウアウエー Sa52-uVrJ)2018/11/06(火) 17:49:22.75ID:Irg6T2PQa
そこはそんなに難しく考えることないかと

「非同期的にAの終了を待機してその後Bを実行」みたいなコードを
普通のシーケンシャルな処理みたいに書けるようにするためじゃないの?

374デフォルトの名無しさん (ワッチョイ 8a7e-zV7r)2018/11/06(火) 18:02:29.90ID:tGae1nmw0
まぁ初心者向けというか、Progress<T>等でも実装を隠蔽しつつ
UIスレッドで行うべき処理を文脈的に記述しやすく…?

いや、個人的にはyieldよろしく妙なコードを生成した気がするし
.NET 4考慮でSynchronizationContext捏ねる方が好きだけどね

375デフォルトの名無しさん (スップ Sdba-vbIu)2018/11/06(火) 18:04:31.43ID:YGMwXXKod
>>372
何がどう難しすぎるの?

376デフォルトの名無しさん (ワッチョイ caeb-ZA70)2018/11/06(火) 18:14:27.73ID:BgqxGxaf0
すまんが、あるクラスがインスタンス化された際、そのクラスのコンストラクターでインスタンス化した元のオブジェクトorクラスを取得することってできないの?
デバッグに使いたいんで引数で渡すのはなしでたのむ

377デフォルトの名無しさん (スップ Sdba-vbIu)2018/11/06(火) 18:41:26.83ID:YGMwXXKod
>>376
日本語で頼む

378デフォルトの名無しさん (ワッチョイ 8a7e-zV7r)2018/11/06(火) 18:45:38.66ID:tGae1nmw0
>>376
インスタンスは正攻法だと無理そうな気配がする
呼び出し元のメソッドが定義されているクラスは
new StackFrame(1).GetMethod().DeclaringType

379デフォルトの名無しさん (ワッチョイ d7ad-zV7r)2018/11/06(火) 19:01:18.64ID:ySONZz/l0
象徴天皇制の現代で国民の意見を象徴しなかったらそら叩かれるだろw

380デフォルトの名無しさん (ワッチョイ d7ad-zV7r)2018/11/06(火) 19:01:53.71ID:ySONZz/l0
誤爆だすまん

381デフォルトの名無しさん (ワッチョイ 039f-MyS3)2018/11/06(火) 19:29:28.47ID:KNaAB8gP0
あれ?難しいと思っているの俺だけ?

>>375
下の場合、基本 処理1=>test()=>処理2と逐次処理する。
test()のとこでawaitしているにもかかわらず、すぐにTestAsnc()は終了しちゃうとこ
test()で止まっているのに、値も設定されず次の処理にいくとか、動作が見た目と違い過ぎる

main(){
int ret = TestAsync();
}
async Task<int> TestAsync() {
処理1;
int ret=await test();
処理2;
return ret;
}
int test() {
24時間かかる処理;
}

382デフォルトの名無しさん (ワッチョイ 039f-MyS3)2018/11/06(火) 19:44:02.97ID:KNaAB8gP0
>>375
◆async void は使うな
投げっぱなしは、なんでダメやねん

◆理由は分かったけど、Waitと混ぜるとデッドロックするとこ
 シングルスレッド止めたら、戻ったら動かないのは理解出来る
でも、async/awaitってTaskクラスを元にしてるんでしょ。
だったら、似たような動作をしてくれるもんだと…

◆SynchronizationContextとは何者?
UI処理に使うのはわかった。でも、これってその為だけ?


でも、一番の理由は、背景を含めてきちんと解説しているHPあるいは書籍が欲しいかな

383デフォルトの名無しさん (ワッチョイ 4efa-2KtO)2018/11/06(火) 19:47:29.55ID:bqFqbezi0
testがTaskになってない

384デフォルトの名無しさん (ワッチョイ 1ad2-vbIu)2018/11/06(火) 19:53:25.35ID:HIVoSst90
>>381
mainメソッド自体が非同期じゃねーだろそれ

385デフォルトの名無しさん (オッペケ Srbb-GQwG)2018/11/06(火) 20:04:46.85ID:X+2KbTG8r
awaitって日本語に直すと「あ待て」なの?

386デフォルトの名無しさん (アウアウウー Sac7-eilh)2018/11/06(火) 20:16:58.70ID:KZ0uzBLfa
>>382
未確認飛行 Cの本サイトやブログが詳しい、例えばこれ
https://ufcpp.wordpress.com/2012/11/12/asyncawait%E3%81%A8%E5%90%8C%E6%99%82%E5%AE%9F%E8%A1%8C%E5%88%B6%E5%BE%A1/

async voidを避けるべき理由は http://neue.cc/2013/10/10_429.html を見てくれ
awaitとWaitを混ぜるとデッドロックするのはSynchronizationContextが関係していて
awaitするTaskの終了後は、awaitする前のスレッドで続きの処理をしようとするのが理由(ConfigureAwait使えば別のスレッドで続きの処理をする)
WaitはTaskが終了するまでそのスレッドで何もできなくなるから、awaitの「続きの処理をしようとする」ことが出来ずにデッドロックする
それで件のSynchronizationContextは、UI処理で使うためのものと思えばいいと思う
Webサーバー側でも同期コンテキストの概念があるらしいがよく知らない

>>385
https://ufcpp.net/blog/2018/1/await/

387デフォルトの名無しさん (ワッチョイ 97d3-QXT6)2018/11/06(火) 20:22:22.86ID:hiXG5OoB0
>>381,382
await/asyncが簡単だとは俺も思わんが初っ端からタイポってレベルじゃないコードが出てくると
「わかった」と言ってる部分すら疑ってかかってしまう

> ◆async void は使うな
わざわざ特別に許可されている構文であり使うなってことはない
使うべきではない場面で手抜きの為に採用するな、という文脈なら理解できる

> ◆理由は分かったけど、Waitと混ぜるとデッドロックするとこ
ConfigureAwaitまわりについては確かに直感に反する場合が多々あるが
結局のところをどちらを既定にするべきかという話になる

> ◆SynchronizationContextとは何者?
UI処理に使うのはただの一例。await(に限った話でもないが)の継続する処理を
どこでに実行するのかカスタマイズするために自分で実装することもできる

388デフォルトの名無しさん (ササクッテロラ Spbb-mbCH)2018/11/06(火) 20:24:08.32ID:M0pxYueSp
非同期処理はここが分かりやすかった
https://www.kekyo.net/2016/12/06/6186

389デフォルトの名無しさん (アウアウエー Sa52-uVrJ)2018/11/06(火) 20:39:00.29ID:Irg6T2PQa
>>381
落とし穴が存在する、という意味で難しいのは確か。
非同期メソッドに限らず非同期処理は全部そうだけど

>動作が見た目と違い過ぎる
これは勘違い。
testの終了を(非同期的に)待機して終了したら下の行を継続するんだから
むしろ見た目通りでしょ。

そこでメソッドを抜けてるわけじゃない。
ただスレッドの占有を止めるだけ

390デフォルトの名無しさん (ワッチョイ 039f-MyS3)2018/11/06(火) 20:54:24.19ID:KNaAB8gP0
>>387
>await/asyncが簡単だとは俺も思わんが初っ端からタイポってレベルじゃないコードが出てくると
どういうこと?
ちなみに、俺はmain中のint ret = TestAsync();はコンパイラーエラーを期待していた。
普通に実行できるうえに、test ()を待たずして、TestAsync()が終了するのに
びっくりしたけど、そういう動作なんでしょ?だから分からないと

>>389
>そこでメソッドを抜けてるわけじゃない。ただスレッドの占有を止めるだけ
でも、test()が終了していないのにTestAsync()が終了するのはなぜ?
retにはTask<int>型が入って、Result未設定になってるけど。

391デフォルトの名無しさん (アウアウウー Sac7-eilh)2018/11/06(火) 21:02:02.39ID:KZ0uzBLfa
>>390
試したコードを貼ってくれないか?
皆が >>381 の書き込みを見て想像したコードは
https://ideone.com/gVD0Ob こんなのだと思うけど
ご覧の通りTask<int>からintには変換できないし、intはawait出来ない

392デフォルトの名無しさん (ワッチョイ 039f-MyS3)2018/11/06(火) 21:05:03.24ID:KNaAB8gP0
>>388
他の人が出してきたのは、既にざくっとだけど読んでたものだったけど
これはみてなかった。後ほど見てみる。

393デフォルトの名無しさん (アウアウウー Sac7-MyS3)2018/11/06(火) 21:06:23.76ID:QbvaQ8DKa
初心者には難しというか誰に対しても理念をしっかり理解しないと使えないし
それでも誤用してる人も多い
スレッドの流れもわからないでいろいろバグコード作ってて後で思ったように動かなくなる

それよりもTaskを使ったシグネチャーで一貫性が損なわれてるのが気持ち悪い
あとから出てきた言語などではasync awaitはきれいになってたりする

それまでが暗黒だったのですこし明るくなっただけでもすごく進歩してると思い込んでる

394デフォルトの名無しさん (アウアウウー Sac7-MyS3)2018/11/06(火) 21:11:19.20ID:QbvaQ8DKa
awaitは一次的に呼び出し元へ順繰りにreturnするもの

395デフォルトの名無しさん (アウアウウー Sac7-MyS3)2018/11/06(火) 21:16:42.51ID:QbvaQ8DKa
kekyoの丼は昔昔async/awaitでおかしな記事を書いてたな
MVPなのにこの程度の理解なのかと思った

396デフォルトの名無しさん (ワッチョイ 5a9b-qaUX)2018/11/06(火) 21:17:05.17ID:J1JRrSzC0
@座標A(50,50)
 座標B(100,50)
 にABを結ぶ下半分の半円。

A座標C(100,50)
 座標D(50,50)
 にCDを結ぶ上半分の半円

まず、正方形の左上、右下の座標をangleに入れ
@angle=(50,25,100,75)
Aangle=(50,25,100,75)

@DrawArc(Pen, angle, -180, -180);
ADrawArc(Pen, angle, -180, 180);
これで合ってます?

よく解らない点
angle座標の計算式
半円の角度の意味がいまいち分からないです。

397デフォルトの名無しさん (ワッチョイ 039f-MyS3)2018/11/06(火) 21:17:13.88ID:KNaAB8gP0
>>391
>試したコードを貼ってくれないか?
長いソースなんでそれは無理だけど

単純に簡略化したつもりだったんだけど
実際にはmain()でなくGUI
Task<int>ではなく、Task<bool>本質的には変えてないつもりだったんだけど…

悪いけど
ちょっと、時間もらって 明日に仕切り直しということで

398デフォルトの名無しさん (ワッチョイ 4e9a-Y/6i)2018/11/06(火) 21:31:56.37ID:8KRwrCef0
>>396
>angle座標の計算式
何の計算式が欲しいのかよくわからない。angle=四角に内接する楕円がベースになる
ここを参照
https://dobon.net/vb/dotnet/graphics/drawrectangle.html
ここだとRectAngleの座標をそのまま入れているけど意味は変わらない
水平方向右が角度開始位置
実行できる環境が無いのでなければ数値変えて自分で動かしてみる方が早く理解できる

399デフォルトの名無しさん (ワッチョイ 1ae3-aMe6)2018/11/06(火) 21:42:34.61ID:pbTvUYL60
>>396
c#と何が関係あるの?

400デフォルトの名無しさん (スップ Sdba-vbIu)2018/11/06(火) 21:44:58.51ID:ahLHh+wMd
>>397
お前のコードだとawaitもTaskも全く基本的な使い方すらできてないやろ
少しはドキュメント読めよ

401デフォルトの名無しさん (アウアウウー Sac7-MyS3)2018/11/06(火) 21:44:59.53ID:QbvaQ8DKa
ボタン押したらクリックイベントハンドラ(メソッド)で重い処理をしてGUIが固まってしまう
これを何とかするにはGUIに制御を返してやらないといけない

awaitではasyncメソッドの中のどこかのレベルで新しいTaskを作って
そっちで別の処理をさせて上のメソッドに制御を戻すことができる

必ずではないけどawaitに出会ったらスレッドは結果としてそのメソッドを離脱して
上位のコードを実行する

awaitに出会ったらスレッドは処理が終わるのを待ってはいない!(重要)
この場合はGUIに制御が戻ってる
awaitの戻り値が用意できたら良きタイミングでまたGUIから処理(スレッド)をかっぱらって続きを実行させるだけ!

402デフォルトの名無しさん (アウアウウー Sac7-MyS3)2018/11/06(火) 21:48:32.21ID:QbvaQ8DKa
昔?はmainでawaitできなかった

一次的にでもmainを抜けると言うことはプログラム終了だもの

403デフォルトの名無しさん (アウアウエー Sa52-uVrJ)2018/11/06(火) 21:48:56.89ID:Irg6T2PQa
>>396
(1) まず最終的に描きたいパイをパイに切り取る前の全体の円(楕円)を考えて、
(2) その円(楕円)に外接する長方形を考える

こういう順番だと思うよ

DrawArcが引数に要求するのはその外接する長方形と、時計の3時からの開始位置の角度と
パイの角度だと思う

使ったことはないがw

404デフォルトの名無しさん (アウアウウー Sac7-MyS3)2018/11/06(火) 21:56:24.33ID:QbvaQ8DKa
以下はよく見かける間違い

awaitに出会ったらGUIに処理を渡します
awaitに出会ったらそこで待機して結果が出るのを待ちます

405デフォルトの名無しさん (ワッチョイ 039f-MyS3)2018/11/06(火) 22:26:22.46ID:KNaAB8gP0
作ったんで、書き込もうとするんだけど 書き込めない
HTTP 403 Forbiddened が出る。

406デフォルトの名無しさん (ワッチョイ 039f-MyS3)2018/11/06(火) 22:37:57.23ID:KNaAB8gP0
これって、まじなソースコードって書けないの?
全角に変換してみた

        public Form1()
        {
            InitializeComponent();
            this.AllowDrop = true;
            wtest();

        }
        void wtest()
        {
            var ret=TestAsync();
            System.Diagnostics.Debug.WriteLine(ret.ToString());
        }

        async Task<bool> TestAsync()
        {
            bool ret = false;
            var task = Task.Run(() => {
                System.Threading.Thread.Sleep(10 * 1000);
                ret = true;
                });
            await task;
            
            return ret;
        }

407406 (ワッチョイ 039f-MyS3)2018/11/06(火) 22:39:33.41ID:KNaAB8gP0
半角に変換して試してw

試したのは、GUIなのでFormアプリで作ってみた
で、疑問点は、
1.これがそのまま動くこと。var ret=TestAsync();でコンパイラーエラーの方が納得する
  理由は、retに値が設定出来ないから。そのうえでTestAsync()呼び出しにawaitを強制するとか
2.await taskでTestAsnc()で待ちが入ると、その上位のメソッドの処理に流れが移ること

要するに流れが直観的でないと感じる。ただし、この流れはがTestAsyncがasync voidならまだ納得がいく

408デフォルトの名無しさん (ワッチョイ 27c3-YdG1)2018/11/06(火) 22:49:42.00ID:jcRa2hVA0
>>406
>>1にリンク張ってあるideoneかdotnetfiddle使いなよ
簡単なコードならサイト上で実行まで出来るぞ

409デフォルトの名無しさん (アウアウウー Sac7-MyS3)2018/11/06(火) 22:54:04.17ID:QbvaQ8DKa
1.
var ret=TestAsync();でコンパイラーエラーがでるとtaskをそのまま受けたい場合に困る
retはただのTask<bool>であってそいつのResultじゃないからそれでいいだろう

2.
そういう流れで処理をしたいのでawaitを使ってる
それが疑問に思うならスタートがまちがってる

410406 (ワッチョイ 039f-MyS3)2018/11/06(火) 22:54:57.62ID:KNaAB8gP0
これでいいのかな?
https://dotnetfiddle.net/o7udF7

>>408
Thx

411デフォルトの名無しさん (ワッチョイ 8a7e-zV7r)2018/11/06(火) 22:54:58.69ID:tGae1nmw0
>>407
asyncメソッドと言っても戻り値は単なるTask<bool>だし
Taskにawaitが強制されたらTaskを待つ場所を選べなくなる

動作的に言えばawaitした時点で抜けて後に再開しようとする
ILSpy 3.0.1とかでasync/awaitデコンパイルを無効にして
ビルド後のバイナリからメソッド内容を見てみるといい

まずTask.ContinueWith()+TaskScheduler.FromCurrentSynchronizationContext()とか
従来の書き方を学んだ方が良いと思う、コルーチン的な物の前に

412デフォルトの名無しさん (ワッチョイ 4e81-mm7G)2018/11/06(火) 22:55:30.26ID:LW+aJyL/0
varについてすら理解できてないじゃん
なんで406でのvarが381でintに置き換えられるって思ったの?

413デフォルトの名無しさん (アウアウウー Sac7-MyS3)2018/11/06(火) 22:57:50.35ID:QbvaQ8DKa
重い処理Aをやってる最中にBもやりたいのでawait asyncを使ってる

重い処理Aの次にCをやるのとBが実行されるのを混同してはいけない

414デフォルトの名無しさん (ワッチョイ 97d3-QXT6)2018/11/06(火) 22:58:30.18ID:hiXG5OoB0
全 角 に 変 換 し て み た


やべえコイツ思っていた以上に馬鹿だぞ!!!

int に変換できるとか言ってたらvarで受けてるし面白すぎんだろ

415デフォルトの名無しさん (アウアウウー Sac7-MyS3)2018/11/06(火) 23:01:12.62ID:QbvaQ8DKa
初心者あおりみっともない
しかも前のレスは初心者には理解できないだろ

416デフォルトの名無しさん (ワッチョイ 039f-MyS3)2018/11/06(火) 23:01:39.73ID:KNaAB8gP0
>>409
おおっ 多分これが答えだな
納得はしていないけど、納得しやすい答えかな

例えば、2については、>>404
>awaitに出会ったらそこで待機して結果が出るのを待ちます
という受け取り方もあるけど、なぜ
>それが疑問に思うならスタートがまちがってる
のかな?

で、この考え方に到達するに参考する書籍等は?

417デフォルトの名無しさん (アウアウウー Sac7-MyS3)2018/11/06(火) 23:04:27.04ID:QbvaQ8DKa
>>416
いつも新刊の入門書をざっと見てるけど入門書でまともにawait asyncを扱ってる書籍はないよ
あってもごまかしてあるか間違ってる

418デフォルトの名無しさん (アウアウウー Sac7-MyS3)2018/11/06(火) 23:07:21.50ID:QbvaQ8DKa
重い処理Aをタスクでやって同時にメインのスレッドを実行し続けるのが目的なので
上位のメソッドが引き続き実行されるのが期待の動作

awaitされた重い処理Aの続きのCが実行されるのはまた別の話

419デフォルトの名無しさん (アウアウウー Sac7-MyS3)2018/11/06(火) 23:13:59.85ID:QbvaQ8DKa
1. 順番に処理をやってるけど別の処理も同時にやりたいな A B
2. その処理が終わったらそのタイミングで別の処理をやりたいな A → C
というのを書くのが従来の非同期処理だと面倒なのでawait asyncを使ってる

420デフォルトの名無しさん (アウアウウー Sac7-MyS3)2018/11/06(火) 23:21:04.01ID:QbvaQ8DKa
上の2は従来だとコールバックメソッドだったが
今はawaitより下の行のこと

従来だと処理が終わったらコールバックメソッドを実行する
awaitだと処理が終わるまで待つ

やってることは同じでも概念が変わって見える

でもやっぱり待つと言うのと違うんだよなあ

421デフォルトの名無しさん (ワッチョイ 039f-MyS3)2018/11/06(火) 23:26:37.38ID:KNaAB8gP0
ありがとう  真面目に答えてくれた人w

差しあたって、消化しきれていないけど
なんとなく見えてきたので、よく考えてみまーす

>>420
うん。awaitって、2つの意味があるんだよね。
  非同期で実行する + ここで同期する(戻り値設定とか)
でも、そこが分かりづらい
でさらに、呼び出し元のスレッドは動く だから、呼び出し元の関数が動くということなんだろうけど

422デフォルトの名無しさん (アウアウウー Sac7-MyS3)2018/11/06(火) 23:26:58.31ID:QbvaQ8DKa
Aを待ったあとにCをやってほしいのに先にBが実行されてしまう
これはけしからん!

というのはスタートが間違い

AとB同時にやってるけど非同期処理Aが終わったらCをやってほしいが正解

423デフォルトの名無しさん (ワッチョイ 27c3-YdG1)2018/11/06(火) 23:30:08.92ID:jcRa2hVA0
>>406
> var ret =TestAsync();
retにTestAsync()が返すbool値が入って欲しいなら、
var ret = await TestAsync();

424デフォルトの名無しさん (アウアウウー Sac7-MyS3)2018/11/06(火) 23:37:32.97ID:QbvaQ8DKa
awaitではどのスレッドも待ってない

元のスレッドは呼び出し元の続きを実行し続ける
新しいtaskスレッドは実行し続ける

勝手に第三のスレッドができて待機したりしない

425デフォルトの名無しさん (ワッチョイ 27c3-YdG1)2018/11/06(火) 23:49:27.64ID:jcRa2hVA0
await Task.Run( () => { 処理A } );
処理B
とあったら、
var scheduler = TaskScheduler.FromCurrentSynchronizationContext();
var task = Task.Run( () => {処理A} );
task.ContinueWith( (t) => {処理B}, scheduler );
みたいに置き換わる。実際はもっと複雑だけど。

426デフォルトの名無しさん (ワッチョイ 4e81-mm7G)2018/11/06(火) 23:51:27.64ID:LW+aJyL/0
これでMSは何目指したの?なんて煽りするほどの相手に初心者煽りと言われてもなーって感じする
そもそもソフトウェア技術でハマりやすいスレッド周りをかなり触りやすく提供してくれてる技術だと思うし、その点でMSに苦情なんて出る?

427デフォルトの名無しさん (アウアウウー Sac7-MyS3)2018/11/06(火) 23:56:24.75ID:QbvaQ8DKa
さっきも書いたけど美しくないしわかりづらいんじゃないの?

数年前はもっと理解してる人が少なかった
リアルで合う人の9割ぐらいの人は誤解してたかわからないと言ってた

ググって上位に出てくるいくつかのサイトも間違いを助長するような内容ばかりだったので
誤解するのも仕方ないかなって思ったなあ

428デフォルトの名無しさん (ワッチョイ 039f-MyS3)2018/11/07(水) 00:01:47.29ID:qsaRvVqe0
>>424
なるほど 最初は、async/awaitの発想って非同期処理を同期処理のように見せることだと思ってた。
(結局これが正解なのね)

Webを漁っても、元々の動機からずれていくような気がしてたんだけど、
awaitで非同期処理を挟むけど同期処理をしているものと思えば、
当初の動機との整合性は取れる。
で、async/awaitの関数は(TestAsync)と書いたものは非同期なのだから
当然呼び出し元は、そのまま動いていくと。

これで、自分の中では大きなとこの整合性はとれたのかな

429デフォルトの名無しさん (アウアウエー Sa52-uVrJ)2018/11/07(水) 00:02:18.96ID:dWNwSiW+a
>>426
それは煽ってるわけじゃなくて、純粋にそう疑問に感じただけでしょうw
少なくとも他人を批判的に見る程度には自分自身も批判的に見た方がいいと思うよw

430デフォルトの名無しさん (ワッチョイ 039f-MyS3)2018/11/07(水) 00:20:23.00ID:qsaRvVqe0
>>425
BackgroundWorkerからasnc/awaitに飛んだから
Taskすらまともに理解していなんだけど、

TaskSchedulerとSynchronizationContextはキーワードとし覚えてる
レベルアップするために、そこを解説したものを教えてください。

431デフォルトの名無しさん (ワッチョイ 4e80-mY15)2018/11/07(水) 00:35:56.72ID:+978RLDn0
>>406-407
cmd.exe とか、特定の命令を半角で書くと、5ch は受け付けない。
ちょっとした英単語の書き込みでハッキングされるとか、5ch の運営は、アホなんだろう

Mango 板で、単語の絞り込みのテストができる

例えば、ドットなら、💩e みたいな文字参照を使えば、書き込める

cmd💩eexe

432デフォルトの名無しさん (ワッチョイ 5bc9-MyS3)2018/11/07(水) 00:38:25.44ID:T3rtNmkK0
>>424
a「wait」って名前が誤解招いている感じ

433431 (ワッチョイ 4e80-mY15)2018/11/07(水) 00:40:03.17ID:+978RLDn0
16進数の2e は間違い。ウンコが表示されたw

例えば、ドットなら、10進数の. みたいな文字参照を使えば、書き込める

cmd.exe

434デフォルトの名無しさん (ワッチョイ 4e81-mm7G)2018/11/07(水) 00:41:05.63ID:NkMDfY750
>>429
俺も純粋にvarの理解すら怪しいのにasync周りが難しいってそんなもんじゃないかな?って思っただけなんすけどね
別に批判的に見てるつもりはなくて俺もasync周りは難しいと思ってる

435デフォルトの名無しさん (ワッチョイ 039f-MyS3)2018/11/07(水) 01:11:44.95ID:qsaRvVqe0
>>434
>俺も純粋にvarの理解すら怪しいのに
逆に聞くと、varってどう誤解するの?もっとも俺はvarを誤解してるかもしれないけどw

余計誤解されるかもしれないとおもって書かなかったけど
解説しておくとすると、そこはシンタックスシュガーだと思ってた Task.Resultを返す
だから、上のほうで、本来ならコンパイラーエラーを出すべきだと書いたのも そこら辺の理由
他の人も指摘してるけど、そこはawaitを書くべきだと自分も書いたのも、あるべき姿はそっちだろうと思ってたから

実際には、動かした段階で、Task<bool>なのは知ってたんだけど そこで気づくべきだった。
とは思うけど、誤解する心理とはそういうものだと思う。

ちなみに、本当にasync/awaitで知りたいのは モナドとの関わりあい
F#ではコンピュテーション式で、async/awaitが実装されてるらしいんだけど
どう実装されているのかが知りたい。

436デフォルトの名無しさん (ワッチョイ 4e81-mm7G)2018/11/07(水) 01:29:03.21ID:NkMDfY750
>>435
まずvarはシンタックスシュガーじゃないよ
メソッドの戻り型を自分で定義してるのになんでTask外れると思ったの?
定義した型と違う型が返ってくるなんて言語仕様そのものからかわっちゃうじゃない
asyncなんか関係なくTask<bool>型を返すメソッドを作って、その戻り値をbool型に入れるって、あれ?ってなるよね

どんな環境でテストしてるのかわからんけどVSとかIDEならvarの上にマウスオーバーすれば型教えてくれるよ?

437デフォルトの名無しさん (ワッチョイ 039f-MyS3)2018/11/07(水) 01:42:24.43ID:qsaRvVqe0
>>436
>まずvarはシンタックスシュガーじゃないよ
というのは、どこで判断するの?
シンタックスシュガーか否かなんての 言語仕様以外の判断基準って存在するの?
delegate、匿名メソッド、ラムダ式周りなんて、旧バージョンでは許されなかった
代入が普通に許されてなかったっけ?
疑問に思った全てを、MSDNで確認するわけではないよね。

>定義した型と違う型が返ってくるなんて言語仕様そのものからかわっちゃうじゃない
いやvarだから定義すらしてないし、脳内変換では、boolだと思い込んでるから

>どんな環境でテストしてるのかわからんけどVSとかIDEならvarの上にマウスオーバーすれば型教えてくれるよ?
だから、テストした段階で、気づいていると>>435にも書いたんだけど これは、今回の一連の質問以前に知ってた
実際には、retに何が入るのかは気になるからローカルウォッチで見た
だから、コンパイルエラーの方が本来の姿だと思ってたけど…

438デフォルトの名無しさん (ワッチョイ 1ae3-aMe6)2018/11/07(水) 01:50:14.49ID:Z88Q6V1f0
>>436
XMLDocumentにかざしたけど出ないね

439デフォルトの名無しさん (ワッチョイ 27c3-kaR4)2018/11/07(水) 01:50:48.17ID:Nx5407ci0
具体的にはどの行がコンパイルエラーになるべきだと思ってる?

440デフォルトの名無しさん (ワッチョイ 4e81-mm7G)2018/11/07(水) 02:07:33.40ID:NkMDfY750
>>437
>async Task<int> TestAsync()
TestAsyncメソッドの戻り値をTask<int>型と定義したのは君だよ?
varは右辺から型を推論する、メソッドが○○型を返しますって定義されてるからその型になる

441デフォルトの名無しさん (ワッチョイ 1ad2-vbIu)2018/11/07(水) 04:03:10.82ID:4Q/iuGqA0
久しぶりにvarすら使えないやつを見た

442デフォルトの名無しさん (ワッチョイ 97d3-QXT6)2018/11/07(水) 07:40:05.39ID:Nn5ja2xC0
まあvarとawaitの合わせ技で混乱すると言うのはわからん話じゃない
C++でautoとPPLを絡めると俺も怪しい時があるし

コンパイルが通るコードを
コンパイルエラーになって欲しいと妄想したコードに勝手に改変して
コンパイルが通ると主張して出してきたくだりはさっぱりわからんがw

>>438
ふらっと C#,C♯,C#(初心者用) Part140 	YouTube動画>2本 ->画像>15枚
出るぞ
べつに型名スペルミスしててもusingなくても出るぞ

443デフォルトの名無しさん (アウアウウー Sac7-kTxa)2018/11/07(水) 07:55:13.01ID:7FHAql48a
>>385
ちょ待てよ

444デフォルトの名無しさん (ドコグロ MM92-aMe6)2018/11/07(水) 08:24:11.94ID:o5rBIXZlM
>>442
マジか
いつの間にかできるようになってやがる

445デフォルトの名無しさん (ワッチョイ 039f-MyS3)2018/11/07(水) 10:07:36.67ID:qsaRvVqe0
>>440
一応、以下は煽りのつもりは無いんだけど

実は未だに混乱してるんだけどね varのとこw

var ret=await TestAsync() とawaitをつけると、bool
var ret=TestAsync() とawaitをつけないと Task<bool>

とか、でも、TestAsync()関数内のreturn retはboolなんだぜ
混乱しないか?var ret=TestAsync()の方が、
普通の関数ぽいからこっちの方がboolぽいという見方もできるし

446デフォルトの名無しさん (ワッチョイ 039f-MyS3)2018/11/07(水) 10:37:39.04ID:qsaRvVqe0
これで最後にするけど、

多分初心者にとって誤解を与えるのは、
”非同期処理を同期処理のように扱える” わけではないと思う。

きちんと、Taskを理解したうえでasync/awaitに入らないと、誤解する可能性があるということ
awaitを魔法の言葉のようにとらえると、誤解の森をさまようってしまうって感じかな
awaitできるのは、Task型に対してで決して普通の関数に適用できるわけではない。

async/awaitの書式が自然に思えるのは、Taskから入った人
そこを飛ばす人間にとっては、”非同期処理を同期処理のように扱える”が逆に誤解を与える

447デフォルトの名無しさん (ブーイモ MM7f-0Z6C)2018/11/07(水) 10:37:56.63ID:+HyKX3eQM
>>435
F#の computation expression でも let! ret = Async.AwaitTask (TestAsync()) で ret が bool になるんだが?
君には抽象化という考え方は難しいようだね
そんなんじゃF#なんか夢のまた夢だぞ

448デフォルトの名無しさん (スップ Sd5a-mm7G)2018/11/07(水) 10:51:40.13ID:DKcaR4dnd
>>445
右辺の型が違うんだからvarによる型推論の結果も変わるだけ
varの話をしてたのにawaitによる処理の話にすり替わってる

retがboolだろうがなんだろうがメソッドの戻り型はTask<bool>と定義したんだろ?
じゃあ疑問が出るのはメソッドの呼び出し箇所じゃなくて実装箇所じゃないの?
なんで戻り型はTask<bool>なのにreturn boolでおkなんだろう?って
ここにvarなんて関係ないのにごっちゃにするから話がこじれる

449デフォルトの名無しさん (ササクッテロ Spbb-YFvO)2018/11/07(水) 11:06:26.88ID:pyY+8g+op
>>445
async関数を書く立場と使う立場でごっちゃにし過ぎ

> var ret=TestAsync()の方が、普通の関数ぽいからこっちの方がboolぽいという見方もできるし
そんな見方はできないよ
関数を使う側は戻り値のシグニチャに従うだけだ
逆にawait式の戻り値がTaskじゃないのが直観的じゃない、と言うなら初心者視点に限って見ればまだ理解はできる

とは言え型推論のvarが非同期機能のawaitまで勝手に面倒を見てしまうという妄想を
まるで仕様により勘違いを誘発されたかのように語るのはお門違いだな

基礎を疎かにしているのに最短距離だけ求める欲求が強すぎるて歪んでいる

450デフォルトの名無しさん (オイコラミネオ MMe3-a/N+)2018/11/07(水) 11:10:22.09ID:pVsScpvPM
varはわざわざ型名書かなくて済むためのシュガーだと思うの
当然、型が自明か気にしなくて済むくらい明瞭なコードなら、可読性も満たす

書き方で型が変わるシチュで、
変数名もretにして混乱してたら本末転倒かと

451デフォルトの名無しさん (スップ Sd5a-mm7G)2018/11/07(水) 11:21:51.89ID:DKcaR4dnd
asyncが難しいことを誰も否定していないのに勝手に初心者でも理解できると解釈して、そんなことない!って文句垂れてるようにしか見えないんだよね。
基本や順序すっ飛ばして全部一気に詰め込むなんて土台無理な話なのに

452デフォルトの名無しさん (ワッチョイ 1ad2-JVrp)2018/11/07(水) 11:33:01.55ID:+tTqHYr+0
そもそもawaitがTaskからResult取り出すものだってわかってなかっだけだな

453デフォルトの名無しさん (ワッチョイ 1ad2-JVrp)2018/11/07(水) 11:36:32.44ID:+tTqHYr+0
あとasyncが戻りを勝手にTaskにしてくれるのも混乱のもとか

454デフォルトの名無しさん (アウアウカー Sac3-U2lQ)2018/11/07(水) 11:44:16.22ID:h4FWJh3Ka
読んでてHaskellのIOモナドみたいとか思った。
asyncが>>=でawaitがreturn。
(Haskellのreturnは戻り値にIOを被せる)

実行順序がコード通りとは限らないと言う意味では遅延評価も非同期か。

455デフォルトの名無しさん (ワッチョイ 039f-MyS3)2018/11/07(水) 11:46:01.13ID:qsaRvVqe0
一応読んでるよ〜

>>452
そこもまだ混乱してるんだけどね
var tas=TestAsync()
bool ret=tas.Result
とすると、デッドロックするんでしょ 理由は分かってるから説明不要

var ret=await TestAsync()
ならOKとか。違いがわかりづらい

456デフォルトの名無しさん (ブーイモ MMba-WT4u)2018/11/07(水) 11:50:22.74ID:T9rK23F2M
なんでこんなに書き込み増えてんねん

457デフォルトの名無しさん (ササクッテロラ Spbb-Tqgu)2018/11/07(水) 11:53:24.50ID:xNIAd77Ep
いつからC#はセミコロン不要になったんだ?

458デフォルトの名無しさん (アウアウカー Sac3-U2lQ)2018/11/07(水) 11:57:23.58ID:h4FWJh3Ka
>>454
あ、asyncとawaitの>>=とreturnの関係逆だった。

459デフォルトの名無しさん (アウアウカー Sac3-U2lQ)2018/11/07(水) 12:11:39.88ID:h4FWJh3Ka
要するにさ。
時間かかり過ぎる処理がUIスレッド占有するとプログラム上正常でもユーザーからは固まったように見えるから、非同期でUIスレッドから切り離してしまいましょうって機能でしょ?

asyncで別スレッドに切り離して、直後のコードで押したボタンとか無効化しておいて、答えが返ってきたら有効化する。みたいな。
(だからUIスレッドは他の操作もできるけど、await付きメソッドは(async部分以外は終わってるけど)async返るまで正式な終了では無い。みたいな。
んで、UI弄るのはUIスレッドのみって縛りを解決する為にSynchronizatrionContextがあると。

齧った限りはそんな理解。

460デフォルトの名無しさん (スップ Sdba-vbIu)2018/11/07(水) 12:12:41.51ID:j1BgkYjRd
何もドキュメント読まずに妄想だけでコーディングしようとするからこんなアホが生まれる

461デフォルトの名無しさん (アウアウエー Sa52-uVrJ)2018/11/07(水) 12:29:37.11ID:GX8LMMiJa
>>446
まあ気持ちは分からんでもないけど、「非同期処理を同期処理のように扱える」なんて
宣伝してる人はいないよね。
大概の記事は「同期処理のように<書ける>」となってるんではないか。

違うかもしれないが、あなたはasyncで修飾されたメソッドの内側の視点と、
外側からの視点の区別がついてないんじゃないか。

「同期処理のように<書ける>」というのは、あくまでasyncで修飾されたメソッドを
書いてる時の、内側の視点に立った場合の話。

先にTaskをある程度知らないと混乱するのはその通りかもしれないが、
知らなくても「async/awaitの書式が自然に思える」とは思うけどな

>>455に書いてるような落とし穴が分かりづらいのはその通りだしたぶん大方が同意するところ。
だから非同期メソッドは糞、と言いたいならそれはないんじゃないかと

462デフォルトの名無しさん (ラクッペ MM4b-vkTM)2018/11/07(水) 14:33:31.51ID:uHgdkwYaM
馬鹿は犬のクソでも拾ってろ

463デフォルトの名無しさん (ワッチョイ 6a80-PzUS)2018/11/07(水) 15:23:16.06ID:B5IB+WEZ0
>>460
そしてそんな池沼解釈を自慢げに広めて馬鹿の量産を狙うんだよな
マジで害悪

464デフォルトの名無しさん (ワッチョイ 3eeb-ZA70)2018/11/07(水) 16:08:24.07ID:RZxjCpbR0
C#に関しては特にそうだけど、QiitaとHatenaは検索から除外したほうが良いよ

465デフォルトの名無しさん (ワッチョイ 1ae3-aMe6)2018/11/07(水) 18:02:56.35ID:Z88Q6V1f0
>>464
qiita助かってるよ
javascript関連かなり助けてもらった

466デフォルトの名無しさん (ワッチョイ 1ae3-aMe6)2018/11/07(水) 18:03:21.43ID:Z88Q6V1f0
hatenaも

467デフォルトの名無しさん (ワッチョイ 6a80-PzUS)2018/11/07(水) 18:04:06.24ID:B5IB+WEZ0
こうやって馬鹿が量産されるわけだ

468デフォルトの名無しさん (アウアウウー Sac7-eilh)2018/11/07(水) 18:25:46.93ID:GPEu9teNa
めるか機械翻訳に慣れているなら
stackoverflow英語版見に行けばほとんどのことは書かれていると思うよ

469デフォルトの名無しさん (ワッチョイ 5a9b-mm7G)2018/11/07(水) 22:06:05.59ID:F0eFVJRp0
Dispose();
リソースを解放ってどういう意味ですか?

470デフォルトの名無しさん (ワッチョイ 4ee8-MyS3)2018/11/07(水) 22:24:06.37ID:EkNn3I7h0
デバッグ時にスレッド数分のウィンドウが出て
一斉かそれぞれでステップインしていけたりしないかなあ

471デフォルトの名無しさん (ワッチョイ 5b80-Q1ft)2018/11/07(水) 23:36:12.44ID:fWOqg0Pc0
頭ワルイヤツが頭ワルイ日記を読んで
ネトウヨやパヨチョンや放射脳になる

コレと同じ

タチがワルイ頭ワルイのが量産される
コレは低学歴知恵遅れに顕著

472デフォルトの名無しさん (ワッチョイ d9e3-7saQ)2018/11/08(木) 06:47:12.34ID:2O0gVFLm0
c#に限らずググって見つかったページを鵜呑みにするだけならキータだろうがハテナだろうがダメに決まってるだろ。

473デフォルトの名無しさん (スッップ Sdb3-RZyg)2018/11/08(木) 07:53:34.07ID:HzGiMKkRd
配列について。
例えばクリックイベントが起こるたびに配列に1つずつ入れたい時、使いたい1次元配列を宣言して、要素数を1つずつ増やしたいときってどうすればいいですか?

474デフォルトの名無しさん (ササクッテロラ Spcd-RfMZ)2018/11/08(木) 07:59:27.65ID:t5YueCJxp
arraylist

475デフォルトの名無しさん (スッップ Sdb3-RZyg)2018/11/08(木) 08:00:45.70ID:HzGiMKkRd
一番上のパブリックで宣言時はやっぱ一個は確定でつくるものですかね?

476デフォルトの名無しさん (アウアウカー Sa9d-Gc0T)2018/11/08(木) 08:16:23.72ID:Tu3rCJEka
>>473
whileの代わりにイベント使うと考えればおk

477デフォルトの名無しさん (ワッチョイ 4b23-QsJb)2018/11/08(木) 08:53:08.32ID:YlmbbEml0
可変長なら配列じゃなくてList<型>を使えばいいよ

478デフォルトの名無しさん (ワッチョイ 419f-ki2E)2018/11/08(木) 09:02:34.53ID:CSIZeDt+0
ワッチョイ 8a7e-zV7r

479デフォルトの名無しさん (ワッチョイ 419f-ki2E)2018/11/08(木) 09:25:03.69ID:CSIZeDt+0
ああごめん 間違えて書き込んじゃった

いいレスしてるなぁ抽出しようとして

480デフォルトの名無しさん (ワッチョイ f9c3-A2K7)2018/11/08(木) 22:05:15.41ID:62lAQ4k70
>>474
過去の遺物

481デフォルトの名無しさん (アウアウウー Sa05-8+/G)2018/11/09(金) 08:06:06.00ID:XmmzP5eBa
先入れ先出しとかならQueueを使うかな

482デフォルトの名無しさん (ブーイモ MMb5-6bMw)2018/11/09(金) 14:44:37.04ID:beO0HsiNM
先っちょだけ抜き差しするならstackやな

483デフォルトの名無しさん (ササクッテロル Spcd-WqUE)2018/11/10(土) 09:47:43.85ID:sUbsN3PYp
質問します。
C#初心者。プログラミング初心者です。
よろしくお願いします。

csvファイルがあって中身は

a,b,c,d
e,f,g
h,i,j,k,l,m,n

のような
行によってカンマの数(1行ずつ読み込んで配列に入れた場合は要素数)が違います。

プログラグの処理としは
このcsvファイルをの内容を1行ずつ読み込んで
xmlまたはjsonファイルに変換したいのですが
どのような処理をすれば
行によって要素数が異なるこのデータ達を
変換できるでしょうか?

よろしくお願いします。

484デフォルトの名無しさん (ブーイモ MMb3-OD9P)2018/11/10(土) 09:52:04.57ID:HbWc37XyM
Split使えば配列に変換してくれるでしょ

485デフォルトの名無しさん (ササクッテロル Spcd-WqUE)2018/11/10(土) 09:59:03.63ID:sUbsN3PYp
Splitメソッドで配列に格納するところまではできてますが、その後の要素数の異なる配列を
xmlやjsonの要素に入れる際の処理のコードが腫れ上がって困ってます。
配列の要素数のパータンに応じて
If (配列の要素数=3){…}
else If(配列の要素数=4){…}
else If(配列の要素数=5){…}

のように
配列の要素数に応じてコード量が
多くなってしまいます。

他に処理の仕方はございますか?

486デフォルトの名無しさん (ササクッテロル Spcd-WqUE)2018/11/10(土) 10:31:22.39ID:sUbsN3PYp
If(3<配列の要素>7){


オブジェクト名.xmlのタグ名1= 配列名[0];
オブジェクト名.xmlのタグ名2= 配列名[1];
オブジェクト名.xmlのタグ名3= 配列名[3];
オブジェクト名.xmlのタグ名4= 配列名[4];
オブジェクト名.xmlのタグ名5= 配列名[5];


のようにすると
配列の要素数とxmlのタグ数が違う場合にエラーがでてしまいます。

例えば上記のコードだと
配列の要素数が5以外の場合はエラーになります

487デフォルトの名無しさん (ワッチョイ d9e3-7vdd)2018/11/10(土) 10:46:41.57ID:kamloJld0
>>483
入力データフォーマットはわかったので
出力データフォーマットを書いて見てください
それが曖昧だからどうやったらいいかわからないんじゃない?

488デフォルトの名無しさん (ササクッテロル Spcd-WqUE)2018/11/10(土) 11:21:38.15ID:sUbsN3PYp
ルコード
namespace Sample.model
{
public class PersonModel
{
/// <summary>
/// ID
/// </summary>
[System.Xml.Serialization.XmlAttribute("id")]
public String ID { get; set; }
/// <summary>
/// 名前
/// </summary>
[System.Xml.Serialization.XmlElement("firstname")]
public String FirstName { get; set; }
/// <summary>
/// 苗字
/// </summary>
[System.Xml.Serialization.XmlElement("lastname")]
public String LastName { get; set; }
/// <summary>
/// 誕生日
/// </summary>
[System.Xml.Serialization.XmlElement("birthday")]
public String Birthday { get; set; }
}
}

489デフォルトの名無しさん (ササクッテロル Spcd-WqUE)2018/11/10(土) 11:23:23.72ID:sUbsN3PYp
ファイルを読み込み処理
.
.
string data =1行ずつ読み込みこんだデータ;
string xml[]= data.Split(,);

/シリアライズする為のPersonsインスタンスを生成
Sample.model.PersonsModel model = new Sample.model.PersonsModel();
model.Persons = new List<Sample.model.PersonModel>();
//インスタンスに値を設定
// Persons1
Sample.model.PersonModel person1 = new Sample.model.PersonModel();

If (3<配列の要素数<8){

person1.ID = data[0];
person1.FirstName = [1];
person1.LastName = [2];
person1.Birthday = [3];
model.Persons.Add(person1);


//出力先XMLのストリーム
System.IO.FileStream stream = new System.IO.FileStream(@"D:\DATA\EXPORT.XML", System.IO.FileMode.Create);
System.IO.StreamWriter writer = new System.IO.StreamWriter(stream, System.Text.Encoding.UTF8);

//シリアライズ
System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(Sample.model.PersonsModel));
serializer.Serialize(writer, model);

writer.Flush();
writer.Close();

490デフォルトの名無しさん (アウアウウー Sa05-8u3a)2018/11/10(土) 11:26:08.88ID:q+mWhUVWa
>>483
var data = File.ReadAllLines("path/to/file.csv")
.Select(line => line.Split(","));

var jsonText = Newtonsoft.Json.JsonConvert.SerializeObject(data);

491デフォルトの名無しさん (ササクッテロル Spcd-WqUE)2018/11/10(土) 11:27:19.41ID:sUbsN3PYp
person1.ID = data[0];
person1.FirstName = [1];
person1.LastName = [2];
person1.Birthday = [3];
model.Persons.Add(person1);


ここの処理に困っています。
この場合は読み込みだデータの配列の要素数が4以外の場合エラーになります。
エラー原因は要素が4未満の場合は
指定したxmlのタグの数に満たないためだと考えられます

492デフォルトの名無しさん (ササクッテロル Spcd-WqUE)2018/11/10(土) 11:28:55.94ID:sUbsN3PYp
間違えました
data[0]ではなく
xml[0] でした

493デフォルトの名無しさん (ササクッテロル Spcd-WqUE)2018/11/10(土) 11:33:51.32ID:sUbsN3PYp
>490
ご指摘ありがとうございます。

要素数が異なる配列を
xmlタグ要素に入れる処理の
ご指摘を頂けると幸いです。

読み込んだ1行のデータの配列の要素が異なる場合の処理はどのように書くのがスマートでしょうか?

494デフォルトの名無しさん (アウアウウー Sa05-I2rI)2018/11/10(土) 12:23:15.91ID:h+MQ7FTQa
>>491
要素が足りない場合に、Birthdayなどをどう書き込むべきかによる
何かしらの既定値を書き込みたいなら
string GetOrDefault(string[] xml, int index, string defaultValue)
{
if (0 <= index && index < xml.Length) { return xml[index]; }
return defaultValue;
}
のような補助メソッド作って
person1.Birthday = GetOrDefault(xml, 3, "1000/01/01");
のように取得する

要素が足りない場合にはBirthdayなどを書き込まないなら
xml出力の方では、PersonModelクラスのメンバーにDefaultValue属性を付けて
その属性で指定した値を格納しておけば書き出されなくなる
JSONの方も同じように書き出さないように出来ると思う

495デフォルトの名無しさん (ドコグロ MM1d-7vdd)2018/11/10(土) 12:35:22.80ID:2+OzQsKxM
>>493
サルなの?
仕様も決めないでどうやるもこうやるもねぇよ
じゃあ、全部key,valueでいいよ
csvに存在するすべての要素をkey,valueで出せ
keyのフォーマットはcolumn-rowな
xmlでのタグ名はdata
属性はkeyとvalue

496デフォルトの名無しさん (アウアウウー Sa05-8u3a)2018/11/10(土) 13:04:57.13ID:q+mWhUVWa
>>493
var persons = File.ReadAllLines("file.csv")
.Select(line => { var a = line.Split(","); Array.Resize(ref a, PROP_COUNT); return a; })
.Select(a => new Person() {
ID = a[0],
Name = a[1],
...,
LastProp = a[PROP_COUNT - 1]
});

var json = JsonConvert.SerializeObject(persons);

497デフォルトの名無しさん (ワッチョイ 4b33-mDL8)2018/11/10(土) 15:54:29.53ID:48CyTBFD0
jsonって名前=値ペアの連想配列は順序が保証されないので
順序を保証したい場合は配列で囲って [{名前: 値}{名前: 値}] みたくすると思うんですが、
データ保存用途として見た場合使い難くないですかね?
シリアライズした時も処理系によって順序が保証されないから単純diff比較も使えずパースして比較する必要がありますよね
これって問題にならないんですか?

498デフォルトの名無しさん (ワッチョイ 31b3-uQDt)2018/11/10(土) 16:48:27.38ID:gqodC/ga0
名前と値で取れるんだから、順序関係ないだろ?

499デフォルトの名無しさん (ワッチョイ 31b3-uQDt)2018/11/10(土) 16:49:31.82ID:gqodC/ga0
つか、シリアライズした結果がいつでも同じだと思うのか?

500デフォルトの名無しさん (ワッチョイ 93b3-Mdza)2018/11/10(土) 17:04:14.17ID:hLxIIZfE0
>>498
テキストだからdiffしたいって言うのは割とよくある要望

501デフォルトの名無しさん (ワッチョイ 4b33-mDL8)2018/11/10(土) 18:05:23.42ID:48CyTBFD0
たとえばweb屋なら画面のチェックボックスとかの状態をjsonでデータ管理するとして
そのデータから設定仕様書とかを起こす時に困るんじゃないかな
なんかここだけアルゴリズム依存で時代と逆行してるような気がしてイマイチなんですよ

502デフォルトの名無しさん (ササクッテロル Spcd-uQDt)2018/11/10(土) 18:07:52.91ID:/C4Raf5+p
んなもん仕様書の書き方次第だろ。

503デフォルトの名無しさん (ワッチョイ 41eb-K50l)2018/11/10(土) 18:26:43.69ID:ZJVvB/9K0
なんかよくわからないけど、このJSON君はお金出して誰かに作ってもらったほうがいいんじゃねえの?

504デフォルトの名無しさん (ラクッペ MM6d-0mwj)2018/11/10(土) 18:31:49.77ID:jXgJ1KMYM
JSONがイマイチだというお前の小言にこのスレはつき合わなければならないのか?
C#に関係ないんだが

505デフォルトの名無しさん (ワッチョイ d9e3-7vdd)2018/11/10(土) 18:41:55.53ID:kamloJld0
俺もjsonはイマイチだと思う
要素があるのかないのかわからん

506デフォルトの名無しさん (ラクッペ MM6d-0mwj)2018/11/10(土) 18:45:43.38ID:jXgJ1KMYM
文句があるならこいつに言ってこい
https://plus.google.com/+DouglasCrockfordEsq
嫌ならママに聞いてもらうか穴掘って叫んでろ

507デフォルトの名無しさん (ブーイモ MM45-OD9P)2018/11/10(土) 18:56:12.67ID:Y9Dl3F80M
自宅の壁にでも書いてろ

508デフォルトの名無しさん (ワッチョイ 8981-zc6X)2018/11/10(土) 19:01:40.71ID:/crW2tCF0
c#とオブジェクト指向の勉強にオススメの本ありますか?
今まで組み込みのcばっかやってきたので、こっちの世界の定石みたいなものを身に付けたいのです

509デフォルトの名無しさん (アウアウウー Sa05-8u3a)2018/11/10(土) 19:22:15.67ID:q+mWhUVWa
>>508
1冊ならAdaptive Code C#実践開発手法

510デフォルトの名無しさん (ワッチョイ 19b3-YP9l)2018/11/10(土) 21:28:30.80ID:lx5S0cHm0
>>491
jsonいじらないと細かいことわからんけど
while とswitchつかうとか?
繰り返す回数はxml.length
i=0の場合はperson1.ID=data[0]
エラーは配列が存在しないから出てるんじゃね

511デフォルトの名無しさん (ワッチョイ e19d-otFY)2018/11/12(月) 20:04:46.62ID:q8PdpD4Q0
public List< string > textsplit(string strdata) {
var ls = new List<string>();
ls.Add("1"); ld.Add("2");
return ls;
}
関数内部でNewしてそれを戻しても問題ない?

512デフォルトの名無しさん (ワッチョイ 7917-Nrm4)2018/11/12(月) 20:15:33.08ID:fLLyDCF20
問題ない

513デフォルトの名無しさん (ササクッテロル Spcd-uQDt)2018/11/12(月) 20:23:24.20ID:NInYtJ3Hp
あーC#ならね。

514デフォルトの名無しさん (ワッチョイ 41eb-AS2U)2018/11/12(月) 20:29:35.59ID:Fg4ONeCp0
それって他の言語だとまずいん?

515デフォルトの名無しさん (ササクッテロル Spcd-uQDt)2018/11/12(月) 20:33:45.12ID:NInYtJ3Hp
ガベコレの無い言語だと、作った人が解放する掟に反するから、ひと悶着あるんだよなw

516デフォルトの名無しさん (アウアウエー Sa23-2y03)2018/11/12(月) 20:37:51.48ID:8vdHE86ca
スタックに自動変数で確保した領域のポインタを返すのは普通はバグだよね
C#はそれが起らないから問題ない

517デフォルトの名無しさん (ササクッテロル Spcd-uQDt)2018/11/12(月) 20:48:26.07ID:NInYtJ3Hp
>>516
そっちは、レジスタ渡しされるから無問題だったりする。
まあ、コンパイラによるがな。

518デフォルトの名無しさん (ブーイモ MMb3-/quP)2018/11/12(月) 20:50:44.04ID:4IQEu5KyM
これがアウトなら、C言語のmalloc関数等は存在そのものがアウトという理屈になるな

519デフォルトの名無しさん (ワッチョイ e19d-otFY)2018/11/12(月) 21:02:40.60ID:q8PdpD4Q0
戻した後で使うんだが使うのが翌日になっても大丈夫?
1日に一回だけUPする場合、そういう可能性がある。そのときにガベージコレクション
されて無くなってるってことない? 関数を抜けてるので。

520デフォルトの名無しさん (アウアウエー Sa23-2y03)2018/11/12(月) 21:06:30.48ID:8vdHE86ca
>>517
レジスタ渡し?

521デフォルトの名無しさん (ワッチョイ 93e3-Nrm4)2018/11/12(月) 21:26:19.59ID:sWgkDKTV0
>>519
関数抜けてても戻り値受けてる変数がいきてるならガベージコレクションの対象にはならないんじゃね?

522デフォルトの名無しさん (スッップ Sdb3-hh7/)2018/11/12(月) 21:39:50.73ID:ce53GWJ3d
翌日だとアウトになるような仕組みなら1秒後でもアウトになる可能性あるじゃん

523デフォルトの名無しさん (ワッチョイ 89fa-JV4m)2018/11/12(月) 22:11:23.36ID:k/0PxRaR0
Listみたいな参照型は実体はヒープに確保されてスタック上にあるのはそれを指すポインタだけ
ガベージコレクションされる可能性があるのは関数を抜けた時ではなくそのオブジェクトへの参照が1つもなくなった時
親関数が戻り値を受け取る事で新たに参照が出来るので、子関数が終了しても消えない

524デフォルトの名無しさん (アウアウエー Sa23-ApEQ)2018/11/12(月) 22:28:48.44ID:JxfhNlMua
>>523
違う。それで済むならGCなどという大層な仕組みは必要なく、単なる参照カウンタで十分。
循環参照の場合は、オブジェクト参照まだ残っていてもGC対象となる必要がある。
正しくは、GCされる可能性があるのは、スタックまたはstaticフィールドから参照を辿れなくなったときだよ。

525デフォルトの名無しさん (アウアウカー Sa9d-Gc0T)2018/11/12(月) 23:52:29.85ID:D6ILV7Jxa
>>516
その為のstatic。
static付いたローカル変数はスコープはローカルだけど、
寿命はグローバル変数と同じ、宣言されてからプログラムの終了までになる。

526デフォルトの名無しさん (アウアウエー Sa23-2y03)2018/11/13(火) 00:05:00.82ID:1GLtCoZ4a
>>525
その為、ではないと思うけどね
少なくとも普通は。
ポインタを返すためにstaticにするってそれはないっすわw
そもそもCの話をしてるわけでもないですし

527デフォルトの名無しさん (ワッチョイ 2b81-6bMw)2018/11/13(火) 00:23:31.91ID:lWwaeoUH0
そう、C#ならね

528デフォルトの名無しさん (ワッチョイ f9c3-uQDt)2018/11/13(火) 00:39:11.71ID:7xmY+SYc0
>>520
そう、アセンブラレベルで見ると、戻り値はR0レジスタとか決まってたりする。

529デフォルトの名無しさん (アウアウエー Sa23-2y03)2018/11/13(火) 00:44:34.29ID:1GLtCoZ4a
>>528
そういう問題じゃないんですがw

530デフォルトの名無しさん (ワッチョイ b37e-YP9l)2018/11/13(火) 00:45:20.73ID:p27/Ddjo0
なぜARMの呼出規約みたいな話が出てくるのか
ヒープへのポインタでスタックすら関係ないし

531デフォルトの名無しさん (ワッチョイ e19d-otFY)2018/11/13(火) 01:19:58.69ID:ADQqJemu0
Methodを渡すのになんでFunc<string,int> fnc みたいになったの?
string Func <string> fncの方が分かりやすいと思うが、、

532デフォルトの名無しさん (アウアウカー Sa9d-Gc0T)2018/11/13(火) 02:01:53.20ID:bZ0HXQ7Xa
>>526
ポインタや参照返してたらC#もCも危険性変わらんよ。
ガベコレされるまで危険なのは同じ。


と言うかポインタは普通返さない。
void関数なりメソッドで入力用のポインタ(参照)と出力用のポインタ(参照)を引数に取る。

533デフォルトの名無しさん (ワッチョイ 93d2-GPPb)2018/11/13(火) 02:06:18.61ID:kG9DLvmd0
>>531
そんな記法C#には存在しないし、入れ子の場合はどうすんのさ

534デフォルトの名無しさん (アウアウエー Sa23-2y03)2018/11/13(火) 02:12:38.95ID:1GLtCoZ4a
>>532
何を言ってるのかさっぱり分からんけど>>518

>>528の人もなんか勘違いしてるっぽいので論点整理

char *int_to_str(int x)
{
  char buf[20];
  sprintf(buf, "%d", x);
  return buf;
}

これのどこがマズいか分かります?
>>511の人はこれと同類の落とし穴がC#にもあるのか心配してると思ったわけ

535デフォルトの名無しさん (アウアウカー Sa9d-Gc0T)2018/11/13(火) 02:20:42.52ID:bZ0HXQ7Xa
>>534
return抜ける時にchar[20]が消えちゃうんでしょ?
んで、そう言う時にreturn抜けても消えないのがstatic char[20]

536デフォルトの名無しさん (アウアウエー Sa23-2y03)2018/11/13(火) 02:24:11.95ID:1GLtCoZ4a
だから、普通はそんなことしませんて...
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13118051728

537デフォルトの名無しさん (ワッチョイ f9c3-uQDt)2018/11/13(火) 02:26:43.91ID:7xmY+SYc0
>>534
それじゃあ>511と問題が違うだろw
だから、ポインターの戻り値なんてレジスタで帰るから気にすんなって話。それにnewしたオブジェクトはヒープに取られるんだから、スタックだって気にしなくていいぞ。

538デフォルトの名無しさん (アウアウカー Sa9d-Gc0T)2018/11/13(火) 02:28:55.08ID:bZ0HXQ7Xa
んで、今度は呼び出元全部がchar[20]と同じに(1回目も2回目も2回目と同じ値に変化する?)なりかねないので、通常

void int_to_str(int x,char* str)
{
  sprintf(str, "%d", x);
}

と言うふうに、出力用のポインタ引数用意する。

539デフォルトの名無しさん (アウアウカー Sa9d-Gc0T)2018/11/13(火) 02:31:57.72ID:bZ0HXQ7Xa
>>536
言ってること同じやん( ´Д`)y━・~~

540デフォルトの名無しさん (アウアウエー Sa23-2y03)2018/11/13(火) 02:32:00.35ID:1GLtCoZ4a
>>537
だからレジスタで返るとかそういう問題じゃないんですがw

問題が違うのは当たり前w
だから、C#にも>>534と同類の落とし穴があることを心配しているんじゃないかなと思って
>>516みたいに書いたわけ

もちろん別のことを心配してるのかもしれん。

>それにnewしたオブジェクトはヒープに取られるんだから、スタックだって気にしなくていいぞ。
だから最初からそう言っていますw

541デフォルトの名無しさん (アウアウエー Sa23-2y03)2018/11/13(火) 02:34:25.29ID:1GLtCoZ4a
>>539
同じじゃないでしょ。
>と言うかポインタは普通返さない。
これ間違ってるから>>518

542デフォルトの名無しさん (アウアウエー Sa23-2y03)2018/11/13(火) 02:38:05.39ID:1GLtCoZ4a
たぶん>>537の人はポインタと左辺値の区別がついてないんじゃないのかな。
これはポインタって言葉の使い方が混乱してるからしょうがないけど

それともそもそもスタックとかポインタの意味が分かってないのか

543デフォルトの名無しさん (ワッチョイ b37e-YP9l)2018/11/13(火) 02:38:54.17ID:p27/Ddjo0
C#のnewに相当するのはC++でもnewだし、C#でもstackallocでスタック配列は可能
しかもローカル変数のアドレスを取得し返すコードもunsafeならビルドできる
返すものが抜けるスタックだと不正なのはレジスタも呼出規約も言語も関係ない

C++でもお行儀はともかく適切にdeleteすれば済むし、C#ならGCが回収するってだけ

>>531
戻り値たるintとかどっかいってる上に奇妙な文法増えちゃうよ

544デフォルトの名無しさん (アウアウカー Sa9d-Gc0T)2018/11/13(火) 02:49:42.48ID:bZ0HXQ7Xa
>>541
言い過ぎだとしても、>>538的な方が普通な気がするが。
試しに普通のポインタ返す関数を。。。とここまで書いて関数ポインタ思い出した。

でも通常かと言うと疑問。
組込関数にもあるけど、それを通常と言って良いかどうか。
それと同じ仕組みの関数作るのが通常とは思えない。

545デフォルトの名無しさん (スッップ Sdb3-RZyg)2018/11/13(火) 07:44:20.95ID:4VfxC09pd
ピクチャーボックスに書いた線の座標を配列にいてれおいて、右クリックの時に一つ前に書いた線を消したい時って再描画させるにはどうしたら出来ますか?

配列の最後を消して配列要素分ループして書いても書けず、前の書いた線が残りっぱなしでやり方が分かりません。

546デフォルトの名無しさん (ワッチョイ d9e3-Nrm4)2018/11/13(火) 07:56:39.45ID:OewfmfIr0
>>545
再描画する前にピクチャーボックスを掃除しているか?
再描画処理が正しいか?

547デフォルトの名無しさん (スッップ Sdb3-RZyg)2018/11/13(火) 09:19:44.70ID:4VfxC09pd
>>546
線色変えたら同じ線上にかかれてました。
しかし、前に書いた線が消えません。
どうすれば消えますか?一回全てクリア?

548デフォルトの名無しさん (ワッチョイ 53f9-ZY2y)2018/11/13(火) 09:43:33.96ID:r8TlMUhn0
>>547
線を書くときに上書きされた背景などの部分も含めて書き直す。

549デフォルトの名無しさん (アウアウエー Sa23-2y03)2018/11/13(火) 12:26:10.47ID:oXvGF3Wua
>>545
なんか、何回も同じようなこと聞いてない?

private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
  if (e.Button == MouseButtons.Right) pictureBox1.Invalidate();
}

そんで描画処理はPaintイベントに書く

Windowsの描画の基本は、他のウィンドウが重なるなどして描画した絵が消されたら
(無効化されたら)その都度再描画。
プログラムの都合で再描画が必要な場合がInvalidate()等を呼んで強制的に無効化する。

PictureBoxは無効化されたら自動で背景色か背景画像で塗りつぶされるはず。
だから前に書いた線を消す必要はない

550デフォルトの名無しさん (ワッチョイ 31b3-FeaG)2018/11/14(水) 21:51:00.00ID:wbMCB4xt0
XORで線引くと、もう一度XORでなぞると元に戻る。
これなら古いのを再描画する必要がない

551デフォルトの名無しさん (ワッチョイ 4b33-mDL8)2018/11/14(水) 22:33:05.99ID:3L2XIs1L0
XORはグレー背景に弱いから真面目に線引くこと考えた方がいい

552デフォルトの名無しさん (アウアウカー Sa85-ZFLo)2018/11/15(木) 03:05:16.76ID:lNkjj0jra
メモリ上にビットマップ展開、そこに描画して画面はメモリ上のビットマップを表示するだけ。
画面の大きさ分のビットマップでメモリ喰うけど、再描画に時間取られない。

553デフォルトの名無しさん (ワンミングク MM5a-fJZ0)2018/11/15(木) 06:20:27.21ID:Hpd5UC3KM
懐かしい

554デフォルトの名無しさん (ワッチョイ ca9f-maOp)2018/11/15(木) 07:16:16.62ID:AUtHx5s50
前に画面の選択範囲のスクリーンショットとる機能作った時に一番苦労したのが
選択範囲を示すための四角の点線をうまく表示することだったわ

555デフォルトの名無しさん (アウアウカー Sa85-ZFLo)2018/11/15(木) 12:43:10.25ID:lNkjj0jra
>>553
今はどうか知らんが、昔は定番テクニックだったよね。-> >>552

556デフォルトの名無しさん (ワッチョイ a5b3-aXY0)2018/11/15(木) 12:59:29.31ID:0i/BmJkF0
今はテクスチャだから四角形プリミティブ重ねればいいのだけ。

557デフォルトの名無しさん (アウアウエー Sab2-mgxK)2018/11/15(木) 13:22:50.19ID:lrjlJOeNa
>>555
553が言ってるのはXOR描画じゃないの?
Win9x時代はエクスプローラ等でアイテムの選択状態を表す時や、>>554が言ってる
ラバーバンドの簡易的な実現方法として利用されてたと思う

リソースが貧弱だった時代に高価なビットマップを保持するなんて愚策を
定番にしていた人がそうそういたとは思えんね

それやってたの、即時モードの描画が理解できなかった、98時代のおじさん
だけだと思う

っていうかWin32ってもう20年以上歴史があるんだからいい加減>>552みたいな
発想は卒業したらどうなんだろう

これ、WPFみたいな保持モードの考え方と全然違うよw

558デフォルトの名無しさん (アウアウカー Sa85-ZFLo)2018/11/15(木) 13:23:12.34ID:lNkjj0jra
Direct2Dとかだっけ。
触った事ないなぁ。。。

ペイントっぽいアプリとか程度だったら、どっちが楽なんだろ。。。

559デフォルトの名無しさん (アウアウカー Sa85-ZFLo)2018/11/15(木) 13:29:33.73ID:lNkjj0jra
>>557
ううむ。そうか。
でもウィンドウが重なったらXOR以前に再描画するものが消えてるんだが。。。

確かに翁とか愛称ついてるあたり古い考えの人だった気もするが、当時でも有効だったなら
今では解像度はタブレット以下が多い割にメモリ積み放題だし、昔より手軽な割に有効だと思うんだが。。。

560デフォルトの名無しさん (アウアウカー Sa85-ZFLo)2018/11/15(木) 13:33:22.82ID:lNkjj0jra
あ、WPFが別物ってのは理解出来る。
とはいえ、ペイントもどき作ってないからどうだろ。。。
HTML5のCanvasの仕組み次第だな。
少なくとも、Formsでは今でも有効。-> >>552

561デフォルトの名無しさん (ワッチョイ 869a-2AkZ)2018/11/15(木) 19:09:16.78ID:qi3FyInE0
画像描画の話題そのものはいいとしてコントロールの描画とImageプロパティへの描画と画面への描画の区別がついていない人がいる気がする
元の質問は「初期化しろ」で終わっているからどうでもいいんだろうけど

562デフォルトの名無しさん (ワッチョイ 3e67-sNvt)2018/11/17(土) 17:07:48.79ID:eS8uuMhZ0


こういうソフトってc#ですか?
pythonではきついですか

563デフォルトの名無しさん (ワッチョイ be8a-maOp)2018/11/17(土) 17:19:03.08ID:8wpf7s1e0
>>562
プログラム言語というより、数学の知識があるかないかじゃない?幾何学とか、行列とか

564デフォルトの名無しさん (ワッチョイ be8a-maOp)2018/11/17(土) 17:21:21.05ID:8wpf7s1e0
それを踏まえて、Windowsで動かしたいならC#の親和性が高いし、
UIをブラウザにしたいならC#でなくてもいいし。

565デフォルトの名無しさん (アウアウエー Sab2-2qly)2018/11/17(土) 17:37:36.65ID:rc62Vrp5a
>>562
こういうのはアルゴリズムが全てで、言語なんかどうでもいい
言語云々言ってるレベルの人には遠すぎる目標だから、いったんもっと手前にマイルストーンを置いたほうがいい
確実に挫折するから

566デフォルトの名無しさん (ワッチョイ 3e67-sNvt)2018/11/17(土) 17:55:07.29ID:eS8uuMhZ0
言語は何でもいいんですね
じゃあC#で頑張ってみます

フィボナッチなんとかでしたっけか

567デフォルトの名無しさん (アウアウイー Sa2d-4yv2)2018/11/17(土) 17:58:49.17ID:bZFmP2aXa
>>562
無理だろう
リンクを開いたら『かっぱ寿司』のCMだった
寿司は握れない

568デフォルトの名無しさん (アウアウエー Sab2-2qly)2018/11/17(土) 18:03:29.40ID:rc62Vrp5a
>>566
勘違いさせてしまったようだが、これを作れるレベルの人なら言語の選択なんか全くどうでもいい些細な問題だという意味だぞ
GUIが一通り使えて3Dのレンダリングができるなら作れるっちゃ作れる

569デフォルトの名無しさん (ワッチョイ 3e67-sNvt)2018/11/17(土) 18:10:45.85ID:eS8uuMhZ0
であれば向いているのは、pythonよりはc#ということになりますか?(ただのイメージですが)

570デフォルトの名無しさん (ワッチョイ cd8a-9Fzi)2018/11/17(土) 18:25:34.63ID:tg8QC7+S0
openGLなら素直にCとかC++使った方がいいとは思う
できるできないじゃなくて初心者なら単純に調べ易さが大事やろ

571デフォルトの名無しさん (ワッチョイ 3e67-sNvt)2018/11/17(土) 18:28:18.79ID:eS8uuMhZ0
c#でdirectxやopenGlを使うのは一般的ではないということでしょうか?
cとかc++は超難易度が高いと聞くのでどうなのかなと思ってました

572デフォルトの名無しさん (ブーイモ MMf1-2qly)2018/11/17(土) 18:31:24.61ID:/a1P+H3qM
C#ならUnity3D使えばいい
できるどころではなく、現代において3Dプログラミングをするなら最も初心者が入りやすい選択だ

573デフォルトの名無しさん (ワッチョイ cd8a-9Fzi)2018/11/17(土) 18:38:39.23ID:tg8QC7+S0
>>571
最近は知らないけどあくまでC/C++用ライブラリのラッパーがあるだけだから
変なところでつまづく可能性あるのがつまんないじゃん
実装が中途半端だったりするのもあるから
webに転がってるサンプルがそのまま動いた方が楽やろ
C/C++は深みはまれば無限の闇だけどシンプルに使う分にはなにも難しくない
だって大半のプログラマはCから入ってるんだし
Unityは全く知らんからその辺は別の人に

574デフォルトの名無しさん (ワッチョイ 3e67-sNvt)2018/11/17(土) 18:41:57.34ID:eS8uuMhZ0
>>572
あくまで1から作ってみたかったので
後ゲームエンジンはgodot使ってたりします

>>573
じゃあCから入ってみます

575デフォルトの名無しさん (アウアウウー Sa91-OesL)2018/11/18(日) 10:42:50.75ID:PoFSPoaKa
asp.net core 2.1 MVCの検証属性
Javaだと検証属性にgroupsを設定できるのだがasp.net coreには同等の機能は存在しない?

576デフォルトの名無しさん (スプッッ Sdca-FO3/)2018/11/18(日) 11:57:32.69ID:ve9l0Wxid
>>575
具体的に何がしたいの?

577デフォルトの名無しさん (アウアウウー Sa91-OesL)2018/11/18(日) 12:12:56.71ID:PoFSPoaKa
>>576
押したボタンによって検証定義を変えたいのだけど検証のグルーピングって他に使い道あったっけ?

578デフォルトの名無しさん (ブーイモ MMea-2qly)2018/11/18(日) 12:18:03.17ID:XN88gtNzM
>>577
諦めてFluent Validationとか使えば

579デフォルトの名無しさん (ワッチョイ ca8a-sEjg)2018/11/19(月) 05:43:43.79ID:r5HrKoSb0
コーディングしてて思うけど変数名とかつけるのがめちゃ難しい
dataとかinfoとか抽象的で何を指してるのかわからんようにならないように
意を示すような単語を探したいが探しきれない

csvファイルを読み込んだバイナリデータを受けとる変数名とかstreamって名前にすべきなのか?

580デフォルトの名無しさん (ドコグロ MM72-rrJU)2018/11/19(月) 07:18:33.39ID:bSg94FGhM
>>579
日本語のカタカナのアルファベット表記でよい
お前の脳みそがなんの辞書も持ち合わせていない雑魚だった場合
全クラスの全変数の数分その都度エキサイト翻訳にかける工数が必要になる
1000個以上あればもちろん1000回以上だ
つまり、雑魚なお前はそのくだらん作業で工数の大半を食い潰す
日本語アルファベット表記で妥協しろ

581デフォルトの名無しさん (アウアウウー Sa91-OesL)2018/11/19(月) 07:47:24.91ID:SGbs8fwRa
>>579
変数名で悩む前にスコープを短くすればいいのでは?

582デフォルトの名無しさん (ワッチョイ 09e3-9Fzi)2018/11/19(月) 08:00:47.12ID:OxHzXIEP0
>>579
変数名は変数管理台帳に登録してあるのしか使っちゃだめだよ

583デフォルトの名無しさん (ブーイモ MM2e-SJl5)2018/11/19(月) 08:05:33.08ID:hJCk5pq9M
業務データを扱ってて直感的に理解したいときには変数名を日本語にしてる。
エディタ操作面で色々不便だけど。

584デフォルトの名無しさん (スプッッ Sdca-FO3/)2018/11/19(月) 09:00:57.18ID:IHvfubsWd
こんな争いも起きるしね
https://github.com/dotnet/corefx/issues/33553

585デフォルトの名無しさん (ブーイモ MMea-2qly)2018/11/19(月) 09:13:29.97ID:E9Vggb2iM
名前以前にそもそもパブリックメンバにタプル使うなってガイドラインがあったはずだけど、もうMS自身が破って解禁されちゃうのか
引数のデフォルト値なんかも当初はパブリックメンバには禁止だったはずだけどMSが平然と無視し始めて完全に形骸化したね

586デフォルトの名無しさん (ワッチョイ d623-l2vd)2018/11/19(月) 09:33:40.04ID:KXf7P7MS0
>>585
TupleとValueTuple混同してないか?

587デフォルトの名無しさん (ブーイモ MMea-2qly)2018/11/19(月) 11:10:29.95ID:E9Vggb2iM
>>586
https://docs.microsoft.com/en-us/dotnet/csharp/tuples
> Even so, they are most useful for utility methods that are private, or internal.
> Create user-defined types, either class or struct types when your public methods return a value that has multiple elements.

588デフォルトの名無しさん (スプッッ Sdca-FO3/)2018/11/19(月) 12:00:00.99ID:IHvfubsWd
>>585
ちゃんとリンク先読んだ?

589デフォルトの名無しさん (アウアウエー Sab2-mgxK)2018/11/19(月) 12:25:52.05ID:fArXgqhAa
>>579
自分で書いているように抽象的な名前であることが可読的でない原因。
そうであればベタベタに具体的な名前を付ければいいでしょう

例えばアップルの株価ならstockPriceOfAppleとか

必要もないのに冗長な名前を付けることはないけど
必要ならたとえローカルでも長い名前を付けることを躊躇してはいけないと個人的には思う

590デフォルトの名無しさん (ワッチョイ 95c9-maOp)2018/11/19(月) 12:32:35.67ID:wcZZ2xz30
IEnumerableの変数名は散々迷った挙げ句に複数形にしちゃうけど、良い名称あるのかな

591デフォルトの名無しさん (ワッチョイ 8681-J3hh)2018/11/19(月) 12:41:02.88ID:llK6EUKu0
>>582
職業ノンプロだけど、変数管理台帳とかまじであるの?

592デフォルトの名無しさん (ワッチョイ 8681-J3hh)2018/11/19(月) 12:41:57.85ID:llK6EUKu0
ちなみに日本語変数とか、一般的な企業のコーディング規約で引っかからない?

593デフォルトの名無しさん (オイコラミネオ MMe5-10Lo)2018/11/19(月) 12:43:33.18ID:zfAWS6U+M
扱うデータの複数名をつけるけど
スコープ短い汎用的な変数名なら
list, items, resultsあたりをよく使う

594デフォルトの名無しさん (ササクッテロル Sp6d-aXY0)2018/11/19(月) 13:44:29.92ID:eViuowHop
>>591
組み込み系からやってる会社なら必需品だぞ。

595デフォルトの名無しさん (ワッチョイ caa1-4fLB)2018/11/19(月) 14:54:04.03ID:5ovmWsrD0
goは変数名短くて楽

596デフォルトの名無しさん (ブーイモ MMea-J3hh)2018/11/19(月) 15:58:15.07ID:xnCC+WkJM
>>594
ローカル変数とかも??

597デフォルトの名無しさん (スプッッ Sdca-UD2r)2018/11/19(月) 18:02:20.58ID:FVlkObn9d
初心者だけど、変数を引数に渡した先の変数名はいつも困る。

598デフォルトの名無しさん (ワッチョイ 8681-J3hh)2018/11/19(月) 18:20:18.21ID:llK6EUKu0
>>597
アンスコ付けとけ

599デフォルトの名無しさん (ササクッテロル Sp6d-aXY0)2018/11/19(月) 18:21:10.13ID:eViuowHop
>>596
当たり前だろ。
スタックサイズの計算に必要なんだから。

600デフォルトの名無しさん (スプッッ Sdca-FO3/)2018/11/19(月) 18:29:32.97ID:IHvfubsWd
>>594
なぜ?

601デフォルトの名無しさん (アウアウウー Sa91-S6HO)2018/11/19(月) 19:01:01.30ID:2DWiAtf3a
>>579
>csvファイルを読み込んだバイナリデータを受けとる変数
はstring配列やbyte配列だと思うけど
固有の型へすぐ変換するだろうから、その短い間ならdataなどでいいんじゃないか
個人的にはstreamという変数名ではSystem.IO.Stream型だと思ってしまう

602デフォルトの名無しさん (ブーイモ MMea-LcRh)2018/11/19(月) 20:04:15.35ID:JjCiYhkEM
>>591
当然だろ。プロジェクトを示す3桁のアルファベットと5桁の数字で構成される変数名しか使えない。

603デフォルトの名無しさん (ワッチョイ fe99-DsqI)2018/11/19(月) 20:30:54.04ID:Wy1p2BEz0
SEIがそうだったな…

604デフォルトの名無しさん (ワッチョイ 5633-ire0)2018/11/19(月) 20:48:07.07ID:q9mHg/N90
変数を管理大腸でうんこでた

605デフォルトの名無しさん (スップ Sdca-sEjg)2018/11/19(月) 21:33:53.01ID:p0KmRpJRd
オープンクローズの原則ってファクトリーパターン実装していたら拡張側は知らず知らずの内に実現していた...??

606デフォルトの名無しさん (ワッチョイ be8a-maOp)2018/11/19(月) 23:37:56.35ID:h32vib960
Guid.NewGuid()で生成したIDが幸運にも重複してシステムをバグらせた人いますか?

607デフォルトの名無しさん (ワッチョイ 4ad2-FO3/)2018/11/19(月) 23:47:06.98ID:miDxs9F80
ねーよ

608デフォルトの名無しさん (ワッチョイ 5633-ire0)2018/11/20(火) 02:05:47.13ID:+fOoRbBp0
マーフィーの法則発動

609デフォルトの名無しさん (ワッチョイ dd80-LcRh)2018/11/20(火) 07:48:29.05ID:8DsnvWPe0
var禁止の会社でうっかりvar使ったのいっぱい書いちゃったのだが一括でなおす方法ってある?
ちなVS2010

610デフォルトの名無しさん (ワッチョイ 59c3-aXY0)2018/11/20(火) 07:57:26.72ID:kdpbOy6R0
new deleteの呪縛から解放されたと思ったのもつかの間、
今度は簡略化し過ぎて気づかないopen closeの罠が沢山散りばめられたw

611デフォルトの名無しさん (ワントンキン MM5a-fJZ0)2018/11/20(火) 19:25:54.22ID:oZWGPYxPM
>>609
ctrl+h

612デフォルトの名無しさん (アウアウエー Sab2-Kapb)2018/11/21(水) 03:58:49.62ID:egIEZrm6a
禁止する理由ってなに

613デフォルトの名無しさん (ワッチョイ 4ad2-FO3/)2018/11/21(水) 04:03:21.33ID:7eNzoDu+0
>>612
Java信者

614デフォルトの名無しさん (ワッチョイ 4ad2-FO3/)2018/11/21(水) 04:04:10.28ID:7eNzoDu+0
…が時代に取り残された腹いせ

615あんこ (アウアウウー Sa91-t7jw)2018/11/21(水) 21:09:33.00ID:JLIdSz/ja
ここに書いたらコードレビュー誰かしてくれる?

616デフォルトの名無しさん (ワッチョイ 3903-k2K5)2018/11/21(水) 21:12:12.58ID:JM/nMfDs0
>>615
レビューしてやってもええけどどのくらい率直に言ってもええんや?
メンタル強い方か?

617デフォルトの名無しさん (ワッチョイ 09e3-9Fzi)2018/11/21(水) 21:19:03.07ID:OrJlxNWN0
>>615
ここの住人はマウンティングするだけだからやめておけ

618デフォルトの名無しさん (ワッチョイ 869a-2AkZ)2018/11/21(水) 21:53:36.32ID:9cx/wCEp0
>>615
そういうのは質問じゃないんだから相談室でやってくれ

619デフォルトの名無しさん (スププ Sdea-Q1wc)2018/11/21(水) 22:17:28.28ID:61i9o8Bqd

おまんこ

620デフォルトの名無しさん (ワッチョイ 3903-k2K5)2018/11/21(水) 23:20:39.67ID:JM/nMfDs0
よく言った

621デフォルトの名無しさん (スプッッ Sd1f-7YUd)2018/11/23(金) 09:21:25.95ID:Z6RMu5t9d
string.Format などで使う {0} みたいなのよ呼び方って「プレースホルダー」で合っていますか?

622デフォルトの名無しさん (ワッチョイ ffd2-nmhv)2018/11/23(金) 09:29:06.81ID:w9GMx5b20
うん

623デフォルトの名無しさん (ワッチョイ d3a5-ylOc)2018/11/23(金) 09:37:10.04ID:ApOE6+zI0
C#はJavaみたく1ファイル/1クラスじゃないけど
皆さんどうしてます?
短いクラスがいくつかあるとき1つのファイルにまとめます?
なんかファイルが多いと読みにくくなるような気もするし
分かれてる方が分かりやすいって人もいるのかな?

624デフォルトの名無しさん (スプッッ Sd1f-7YUd)2018/11/23(金) 09:37:27.77ID:Z6RMu5t9d
>>622
ありがとうございます

625デフォルトの名無しさん (ワッチョイ ffd2-nmhv)2018/11/23(金) 09:41:35.57ID:w9GMx5b20
>>623
試行錯誤しながら開発してる時は同じファイルに複数クラス書いて、後からバラす
インターフェイスと実装クラスが一対一で、かつ量が大したことない場合はひとつにまとめたり

626デフォルトの名無しさん (ワッチョイ cf81-xbeM)2018/11/23(金) 09:43:27.05ID:OqByd5h70
>>623
基本的にはフォルダ分別だけど、json受信用とかのフィールド定義だけなら1ファイルにまとめちゃうかな。可読性が上がる。

627デフォルトの名無しさん (アウアウエー Sadf-4vBw)2018/11/23(金) 10:04:34.96ID:o5J4ZB2+a
>>623
俺は仕事なら余計な裁量入れるのが面倒だから機械的に1ファイル1クラス
個人的に開発するときは自分が見やすい程度に纏めることもある

628デフォルトの名無しさん (ワッチョイ d3a5-ylOc)2018/11/23(金) 10:13:21.65ID:ApOE6+zI0
基本は1ファイル/1クラスで
まとめるのは特別な事情ってのが多数なのかな
ありがとうございました

629デフォルトの名無しさん (ワッチョイ ffd2-nmhv)2018/11/23(金) 10:17:56.37ID:w9GMx5b20
あとはEnumとその拡張メソッド定義クラスとかもまとめるかな

630デフォルトの名無しさん (ワッチョイ cf81-xbeM)2018/11/23(金) 11:33:34.05ID:OqByd5h70
1ファイル1クラスって見積の事情じぁあねーだろな?

631デフォルトの名無しさん (ワッチョイ c3c9-zhOP)2018/11/23(金) 11:52:12.06ID:IXAfq7SI0
VSからクラスやインターフェース作成すれば1クラス1ファイルが基本だと判ると思うけど

632デフォルトの名無しさん (スップ Sd1f-nmhv)2018/11/23(金) 11:56:31.89ID:X4mqBgACd
>>631
そういうことを質問してるんじゃないだろ

633デフォルトの名無しさん (ワッチョイ cf81-xbeM)2018/11/23(金) 13:00:59.52ID:OqByd5h70
>>630
まあこれは半分冗談なんだけどさ、リファクタリングしてコード短くしたら見積もり下がるじゃねーかと先輩に怒られたとかそーゆう話をネットで見たことがあるのでね。高くするためにファイル数増やしてるなんてことない?って話

634デフォルトの名無しさん (ワッチョイ bfa1-Kv/S)2018/11/23(金) 14:33:15.86ID:gLExdUeZ0
Javaのような糞みたいなことするなよ

635デフォルトの名無しさん (スップ Sd1f-nmhv)2018/11/23(金) 17:16:23.44ID:X4mqBgACd
>>633
LOCでの見積もりはわかるが、ファイル数ってのは初めて聞いた

636デフォルトの名無しさん (スップ Sd1f-wvC2)2018/11/23(金) 17:24:55.54ID:2ha96jMkd
>>635
ファイル数増やせばヘッダーにテンプレコメント書いたりして結果的に行数増やせるってことじゃないかな?

637デフォルトの名無しさん (ワッチョイ 6f7f-NVvz)2018/11/23(金) 17:49:16.87ID:+XjaJ0Hq0
ファイル名とクラスが対にしとかないと保守がめんどうだね

638デフォルトの名無しさん (スップ Sd1f-nmhv)2018/11/23(金) 18:00:34.54ID:X4mqBgACd
>>636
LOCってわかるかい?

639デフォルトの名無しさん (スップ Sd1f-nmhv)2018/11/23(金) 18:02:59.51ID:X4mqBgACd
>>637
なんで?

640デフォルトの名無しさん (ワッチョイ ff7f-wvC2)2018/11/23(金) 18:05:29.93ID:t3Fo6DVq0
>>638
コメント以外だって増やせるよね?そんなとこ気にすんの?w

641デフォルトの名無しさん (スップ Sd1f-nmhv)2018/11/23(金) 18:06:39.95ID:X4mqBgACd
>>640
具体的には何?
それを見積もりの根拠としてカウントするものなんだよね?

642デフォルトの名無しさん (ワッチョイ ff7f-wvC2)2018/11/23(金) 18:11:36.90ID:t3Fo6DVq0
>>641
usingもnamespaceも使わないの?
どんな小さなclassだってそれなりの規模の中に入れればそれなりの行数消費する
class辺りの最低行数を上げれば見積もりだってあがるだろ?
こんな細かく説明必要なの?こんなどうでもいい内容で?

643デフォルトの名無しさん (スップ Sd1f-nmhv)2018/11/23(金) 18:16:17.28ID:X4mqBgACd
>>642
usingやnamespaceごときが見積もりに有意な影響を与えるようなプロジェクトなんかやったことなくてごめんね

644デフォルトの名無しさん (ワッチョイ cf81-xbeM)2018/11/23(金) 18:39:43.75ID:OqByd5h70
闇が深そうだ

645デフォルトの名無しさん (ワッチョイ ffb3-I6zH)2018/11/23(金) 18:58:12.49ID:4Tv+Pn+t0
言い負かされて悔し紛れの捨て台詞 w
誰のこととは言わないけど

646デフォルトの名無しさん (ワッチョイ 6f7f-NVvz)2018/11/23(金) 19:15:37.38ID:+XjaJ0Hq0
>>639
そのほうがSCM上扱いやすい
ファイル一覧からクラス探しやすい
conflictマージが楽
プロジェクトチーム内でPG毎に好き勝手にやると一貫性がなくなる
といったところかな
とはいえ結合の強いクラスとかパラメーター系のクラスは一緒にするけども

647デフォルトの名無しさん (ドコグロ MM1f-I6zH)2018/11/23(金) 19:26:33.26ID:EY7/YwthM
>>646
> そのほうがSCM上扱いやすい
理由が書いてない

> ファイル一覧からクラス探しやすい
IDE使ってないのか?

> conflictマージが楽
変わらんと思う

> プロジェクトチーム内でPG毎に好き勝手にやると一貫性がなくなる
予め決めればいいだけじゃないの?

648デフォルトの名無しさん (ワッチョイ 6f7f-NVvz)2018/11/23(金) 19:35:28.46ID:+XjaJ0Hq0
>>647
じゃあ1ファイルにする合理的な理由はなに?

649デフォルトの名無しさん (ワッチョイ ffb3-I6zH)2018/11/23(金) 19:43:31.36ID:4Tv+Pn+t0
>>648
別に1ファイルにしろなんて誰も言ってないと思うが…
適当にまとめた方が扱いやすいだろって話な

650デフォルトの名無しさん (ワッチョイ ff7f-wvC2)2018/11/23(金) 20:38:29.58ID:t3Fo6DVq0
そもそもコード量で見積もりするようなプロジェクトやったことないけど
namespaceやusingって独自でフレームワークレベルまで全部構築するような大きい案件のほうが無駄に行数稼げそうだなーって感覚

そもそも見積もり上での影響の大きさなんか話題になってないよね
どうでもいい糞ルールで売上1%あがりましたー、みたいな話じゃん
広い世の中、そんな案件もあるんじゃないかなー?って思っただけでなんでこんな噛みつかれるんだ?

651デフォルトの名無しさん (ワッチョイ ff06-zhOP)2018/11/23(金) 22:26:33.78ID:IbCsJ+Md0
ちっちゃいやつはインナークラスにしちまうな

652デフォルトの名無しさん (スップ Sd1f-nmhv)2018/11/24(土) 01:25:32.45ID:3tDW2ZIed
>>651
それJavaじゃね?C#ならnested class

653デフォルトの名無しさん (ワッチョイ ffb3-I6zH)2018/11/24(土) 08:38:33.58ID:kuH8s62I0
ちゃんとした名称知ってる俺スゲーってか?
そこまでしてマウント取りたいものかね w

654デフォルトの名無しさん (ワッチョイ 6f93-wJmD)2018/11/24(土) 08:49:29.06ID:IRw8AAbl0
c#でもインナークラスと言って間違いちゃうよ
公式でもね

655デフォルトの名無しさん (ワッチョイ cf81-xbeM)2018/11/24(土) 10:32:41.42ID:QDlc1GIX0
むしろnested classなんて聞いたことないわ

656デフォルトの名無しさん (アウアウエー Sadf-4vBw)2018/11/24(土) 11:34:11.91ID:VBkVIhNza
Javaだとメソッド内でクラス定義できるからネストだと意味的に不自然なんだよ

657デフォルトの名無しさん (ワッチョイ ffd2-nmhv)2018/11/24(土) 12:05:57.96ID:WtZSNTCR0
>>655
Java屋さんいらっしゃい

658デフォルトの名無しさん (ワッチョイ cf81-xbeM)2018/11/24(土) 13:19:32.37ID:QDlc1GIX0
>>652
>>657
こいつ多分勉強出来ないタイプ。
C#の関連書籍にはnestedclassなんて単語は出てこない。
更に用語で検索するとむしろjavaよりの言葉であることが判明。つまり、にわかの誤った認識でドヤ顔しちゃう可哀想な典型。以降スルー推奨

659デフォルトの名無しさん (ブーイモ MMe7-4vBw)2018/11/24(土) 13:30:59.43ID:vw8dRG/XM
>>658
さすがに可哀想だから教えておくか
C#だとユーザー定義型はクラスだけじゃないから、用語としてはclassよりtypeが好まれるの
nested types でググってみ?

660デフォルトの名無しさん (ワッチョイ 231e-nwd5)2018/11/24(土) 13:34:12.99ID:MaS7Khub0

661デフォルトの名無しさん (ワッチョイ f3c3-pqc8)2018/11/24(土) 13:51:48.22ID:wRaDaS++0
>>653
被害妄想酷くない?

662デフォルトの名無しさん (ブーイモ MMff-fFAZ)2018/11/24(土) 13:58:36.09ID:dVQ/sIVoM
ほんとマウンティングしかしない連中だな

663デフォルトの名無しさん (ワッチョイ ffb3-I6zH)2018/11/24(土) 14:32:36.02ID:kuH8s62I0
>>661
>>654-660見てもそれ言える? w

664デフォルトの名無しさん (ワッチョイ ffd2-nmhv)2018/11/24(土) 15:09:18.13ID:WtZSNTCR0
>>658
お前検索してないやろw

665デフォルトの名無しさん (ワッチョイ d39a-3+6q)2018/11/24(土) 15:13:42.72ID:nuCJ8Tz/0
間違ったことに突っ込み入れて訂正して「マウンティング」とか無いわ
違ったこと言い続けるアホならともかくこの件は>>660で終わっているし

666デフォルトの名無しさん (ワッチョイ 231e-nwd5)2018/11/24(土) 15:24:23.92ID:MaS7Khub0
だよな。普通に訂正、反論するだけでなんでもかんでもかんでもマウントはないよな。
喧嘩ごしでやってるならマウントって言ってもわかるけど。
だから>>652は別にマウントでもないな。まあ細かいとは思うが

667デフォルトの名無しさん (ワッチョイ c336-CvEX)2018/11/24(土) 15:50:14.83ID:X9wbQk6q0
初心者向けC#のサイトでGUIプログラムの例があったので入力してみました。
しかし
 using System.Windows.Controls;
でコンパイルエラーになります。 Controlsなんてネーヨ!エラーです。
正しくは、どこでしょうか?
ちなみに環境なんですがubuntu16で、MonoDeveloperを使っております。

668デフォルトの名無しさん (アウアウウー Sa27-tiSx)2018/11/24(土) 16:05:53.32ID:KjMkY0qza
>>667
System.Windows.Controls名前空間以下の型(例えばControlクラス)は
PresentationFramework.dll というDLLで定義されているから
そのDLLを参照に追加する必要がある
どの型がどのDLLに属しているかは、MSDNやMicrosoft Docsでその型のページを探して
上の方にあるAssemblyの箇所を見ればわかる
例えばControlの場合は https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.controls.control?view=netframework-4.7.2

ただ肝心の、MonoDeveloperで参照を追加する方法は俺には分からない

669デフォルトの名無しさん (ドコグロ MMc7-I6zH)2018/11/24(土) 16:31:21.34ID:IUSP2F7UM
>>665-666
はいはいすごいでチュねー
これで満足か? w

670デフォルトの名無しさん (ワッチョイ 33e3-2kky)2018/11/24(土) 16:42:28.73ID:eoAr82J80
どうでもいいけどインナークラスなんて使うなよ
未来は誰にも予想できない

671デフォルトの名無しさん (ワッチョイ 6f8a-zhOP)2018/11/24(土) 16:46:50.34ID:NR09riDN0
Guid.NewGuid()が重複した人いますか?

672デフォルトの名無しさん (ワッチョイ ffd2-nmhv)2018/11/24(土) 16:49:51.50ID:WtZSNTCR0
ねーよ

673デフォルトの名無しさん (ワッチョイ 231e-pqc8)2018/11/24(土) 16:57:20.53ID:SHV38fMb0
>>669
他人の満足とか他人の心配より自分の馬鹿な頭心配しとけよw

674デフォルトの名無しさん (ワッチョイ ff9b-ZAsc)2018/11/24(土) 16:59:12.41ID:ntzumrir0
2点ほど、
pictureboxに書いた線やらマルやらを書き終えたらボタンを押しもう書けないようにロックするにはどうしたらいいですか?

フォーム2で書いたpictureboxの絵をボタン投下時にフォーム1に同じ絵をコピーしたい場合はどうしたらいいですか?

675デフォルトの名無しさん (ワッチョイ ffb3-I6zH)2018/11/24(土) 17:04:30.23ID:kuH8s62I0
>>673
お前の日本語理解力が心配だよ w

676デフォルトの名無しさん (ワッチョイ cf9a-81xu)2018/11/24(土) 17:08:20.29ID:EV3fc7VB0
>>674
最初のはpicturebox.Imageを書き込み不能にしたいってこと?そっちはわからない
2つめのは用途による
picturebox2.Image=picturebox1.Image;//これは1を書き換えるとそのまま2に反映される
picturebox2.Image=new Bitmap(picturebox1.Image);//これはいわゆる普通のコピー
ImageがBitmapでなくMetaFileならこれは使えないけど

677デフォルトの名無しさん (ワッチョイ 231e-nwd5)2018/11/24(土) 17:10:52.63ID:SHV38fMb0
>>675
おまえの被害妄想の方が心配だわw
どうやったら>>652がマウントとかそこまで卑屈になれるかww

678デフォルトの名無しさん (ワッチョイ ffb3-I6zH)2018/11/24(土) 18:03:02.82ID:kuH8s62I0
>>677
だからその後のレス見ろよ…

> >>654-660見てもそれ言える? w

679デフォルトの名無しさん (ワッチョイ f3c3-pqc8)2018/11/24(土) 18:09:44.70ID:wRaDaS++0
>>678
それも見た上でレスしたぞ

680デフォルトの名無しさん (ワッチョイ e3d2-ta/Z)2018/11/24(土) 18:49:18.12ID:gGGjjoOQ0
それ以前に >>1 を読めよ。
>なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。

681デフォルトの名無しさん (ワッチョイ ffb3-I6zH)2018/11/24(土) 18:55:03.96ID:kuH8s62I0
>>679
で、>>654-660はマウント合戦じゃないとな?
そうならもう見解の相違というしかない

682デフォルトの名無しさん (ワッチョイ 33e3-/G1A)2018/11/24(土) 20:27:17.85ID:3uyeEm6u0
マウンティングか否かの議論を相談室送りにしてもあっち困るだろ

683>>676 (ワッチョイ cf9a-81xu)2018/11/24(土) 21:38:37.28ID:EV3fc7VB0
>>676にキャスト不足とか誰も突っ込んでくれないw

>>674
Form1で書いたpictureboxの絵をボタン投下時にForm2に同じ絵をコピーの例
https://ideone.com/ifdvrf
Visual StudioでC#の新しいプロジェクトを作って自動生成されたcsを全部消して代わりにダウンロードしたcsを既存の項目として追加して実行
Form1ではマウス左クリック+ドラッグで描画、Form2でCopyをクリックするとその時点のイメージをコピー
Enableのチェック外すと描画中止

684デフォルトの名無しさん (スップ Sd1f-cRgy)2018/11/26(月) 11:03:50.04ID:SESNl2J0d
何だかんだでc#の勉強を始めることになったんですけど、なにぶんそういう知識はまるで無いのでどう勉強したらいいかさっぱりです
とりあえず初心者向けの参考書とc#を打てるなんちゃらスタジオがあれば大丈夫でしょうか

685デフォルトの名無しさん (ワッチョイ cf81-pqc8)2018/11/26(月) 11:21:34.31ID:SVaivieI0
>>684
自分に合った参考書やサイトを見て勉強しながら
VisualStudioで試行錯誤しながらやっていくしかない

自分の周りにC#について教えてくれる人がいるなら
どんどん聞いて吸収していくのが一番いい

とにかくサンプルコードを打ち込んだりしながら
想像力を働かせて覚えていくしかないよ
そのうち視界が開けて来て作りたいものが作れるようになる

作れるようになったらまず、簡単なものからにするべき
いきなり難しいものを作ろうとすると潰れるよ(天才なら別だが)
アラーム時計やカレンダーや画像ビューアあたりから始めるのがいいと思う

686デフォルトの名無しさん (スップ Sd1f-cRgy)2018/11/26(月) 12:15:21.72ID:SESNl2J0d
>>685
ありがとう、帰りに初心者の自分に合いそうな優しい参考書を買ってみるよ。 とりあえず基礎からみっちり覚えることにするね

687デフォルトの名無しさん (ワッチョイ e3b1-Kv/S)2018/11/26(月) 15:45:06.75ID:qFYm+H7r0
コンソールアプリにてコンソール自身へのIME制御はハードル高いのでしょうか?
ひらがなモード、半角英数モードをコンソールアプリ側で切り替えたいと思い色々ググって試してみたところ、うんともすんとも行きません
大人しくFormアプリにするべきなのでしょうか

688デフォルトの名無しさん (ワッチョイ 238a-J8rx)2018/11/28(水) 03:51:20.87ID:W51sdDs/0
簡易HttpServerを作りたいのですが、以下のコードを実行してアクセスすると、"GET"が2回コンソール出力されます。
クライアントからのGETは1回しか受信していないと思うのですが、何故でしょうか。
https://ideone.com/Nr02QL

689デフォルトの名無しさん (ワントンキン MM9f-dDyV)2018/11/28(水) 05:59:27.93ID:NH2f0caoM
内容は分からんがConsole.WriteLine以外にOutputStreamのどれかがコンソール出力してたりはしないの?

690デフォルトの名無しさん (ワッチョイ 8f23-OUhl)2018/11/28(水) 09:38:11.53ID:G4kzubka0
ブラウザでアクセスしたら最初の1回はfaviconリクエストが追加要求されたりするけど
RequestのUrl確認した?

691デフォルトの名無しさん (オイコラミネオ MM87-2v1H)2018/11/28(水) 11:21:23.50ID:e/TO460qM
良い指摘だぬ

692デフォルトの名無しさん (スプッッ Sd1f-7YUd)2018/11/28(水) 12:49:32.68ID:VpsTLnkwd
マーシャリングが面倒でも負荷の高い処理はC++とかで組むべき?

693688 (ワッチョイ 238a-J8rx)2018/11/28(水) 12:59:30.21ID:W51sdDs/0
>>690
おっしゃる通り、faviconリクエストでした。
本当にありがとうございます。

694デフォルトの名無しさん (スフッ Sd1f-wpGg)2018/11/28(水) 13:15:16.62ID:L6JkQudHd
どういたしまして

695デフォルトの名無しさん (オイコラミネオ MM87-BYmB)2018/11/28(水) 13:16:32.80ID:xrfZ5xLeM
>>692
劇的に効果あるなら
マルチタスクにしてもいいし、GPGPUとか、openCL(作り方によればCPUでもGPUでも動かせるし、併用でフル実行させるとやりきった感半端ない)とか今なら色々あるよ

696デフォルトの名無しさん (ブーイモ MM27-iCMB)2018/11/28(水) 13:26:20.94ID:cyvzVFzDM
>>692
まずはアルゴリズムの改良を検討する
スクリプト言語だとCPUバウンドな処理はC++に比べて数桁遅いから、
許容範囲の処理時間を達成するためにはスクリプトのままアルゴリズムの改良を頑張るよりもC++で力技の方が結果的に早い(速い、ではない)ことも多い
一方C#はせいぜいC++の数倍のオーダーであり、その程度ならアルゴリズムの改良によって簡単に逆転する

697デフォルトの名無しさん (オイコラミネオ MM87-2v1H)2018/11/28(水) 15:38:58.09ID:e/TO460qM
夢の最速目指すよりも
仕様決めないときりがないしな

698デフォルトの名無しさん (ワッチョイ 839f-nfAC)2018/11/28(水) 16:41:31.36ID:JaydQRfC0
SecureStringは使うなって書いてあるんだけど
じゃあ代わりに何使えばいいの?教えて

699デフォルトの名無しさん (スッップ Sd1f-1ob7)2018/11/28(水) 17:06:53.33ID:BP3XEZ+Jd
HANDLE CreateFile(
LPCTSTR lpFileName, // ファイル名
DWORD dwDesiredAccess, // アクセスモード
DWORD dwShareMode, // 共有モード
LPSECURITY_ATTRIBUTES lpSecurityAttributes, // セキュリティ記述子
DWORD dwCreationDisposition, // 作成方法
DWORD dwFlagsAndAttributes, // ファイル属性
HANDLE hTemplateFile // テンプレートファイルのハンドル
);


lpSecurityAttributes
取得したハンドルを子プロセスへ継承することを許可するかどうかを決定する。

個プロセスへの継承とはどういう意味なのでしょうか

700デフォルトの名無しさん (ワッチョイ f317-/G1A)2018/11/28(水) 18:13:59.61ID:KWr5egyF0
スレチ

701デフォルトの名無しさん (ワッチョイ 7fc3-EZ1D)2018/11/28(水) 18:19:28.62ID:urROSKq40
ここでWin32とかの話はスレチだわな。

セキュリティ記述子の話をすると、所有者セキュリティID, グループSID, 任意 アクセス制御リスト, システムアクセス制御リスト, アクセストークンの話で本が書ける。無難にNULLを入れとけばよい。

C#だとSystem.Intptr.Zeroだな

702デフォルトの名無しさん (ワッチョイ 7fc3-EZ1D)2018/11/28(水) 18:34:17.60ID:urROSKq40
子プロセスの継承の例は、パイプを使ったプロセス間通信とかでしょうね。
以上、スレチごめんなさい

703デフォルトの名無しさん (ワッチョイ ff9b-ZAsc)2018/11/28(水) 19:36:37.13ID:whfYkWqO0
pictureboxの中に400☓800の四角を書き、線ボタン、丸ボタンを作って、それを投下したら四角の中に絵を書いくもの作りました。


@データ番号入力(001)3桁
A上記のpictureboxが表示
B線やら丸やら書く
Cデータ内容保存
この繰り替えし。

この時のCで書いた情報の保存方法はどうしたらいいと思いますか?座標点の他にどんな情報があったらいいですかね?
もう一回表示したい時とか

704デフォルトの名無しさん (ワッチョイ 8f23-OUhl)2018/11/28(水) 19:47:06.26ID:G4kzubka0
保存方法? 好きにしろとしか言えない
どんな情報って、そりゃ線やら丸やら書いたときに使った情報だろ

705デフォルトの名無しさん (ワッチョイ 6f93-2v1H)2018/11/28(水) 21:24:08.05ID:WfNZCJmP0
実行中は線引く際のストローク、円を描く際のパラメーターをリストで保存してくのが定番。アンドゥリドゥのために。
保存するときは、imageに変換しても良いし、描画履歴の情報を保存しても良い。
何がしたいかによるとしか

706デフォルトの名無しさん (ワッチョイ f3c3-pqc8)2018/11/28(水) 21:33:46.64ID:wlMFFO6p0
>>698
https://github.com/dotnet/platform-compat/blob/master/docs/DE0001.md
> The general approach of dealing with credentials is to avoid them and instead rely on other means to authenticate,
> such as certificates or Windows authentication.
資格情報を扱う一般的な方法は、資格情報を回避し、代わりに証明書やWindows認証などの他の認証方法に依存することです。

回答になってないな…。

707デフォルトの名無しさん (ワッチョイ 234a-tprL)2018/11/29(木) 11:59:38.79ID:w8w+eTQL0
自作のコントロールでFontプロパティを実装しようと考えています。

FontはIDisposableを継承しているので適切なタイミングでDisposeを実行する必要があると思うのですが
・コントロールのDispose内
・プロパティのsetter
この2箇所でDisposeの呼び出しを実装すれば大丈夫ですか?他にDispose呼び出しが必要な所は無いですか?

具体的には↓のように実装しようと思っています
https://ideone.com/rJl7Fj

708デフォルトの名無しさん (アウアウエー Sa52-70Pl)2018/11/29(木) 12:58:03.97ID:GYTobZd0a
>>707
別のオブジェクトが同じFontの参照を握ってる可能性もあるから
自分の都合で勝手にDisposeするわけにもいかんでしょう。

ほっておくしかないのでは。

どうしても気になるならFontプロパティのセッターでFontの参照そのものをバッキングフィールドに
キャッシュするのではなく、等価なFontを再構築可能な情報をキャッシュするようにするとか

本当はこういうプロパティーの実装はよくないみたいだけど(ゲッターの返す値が毎回別のオブジェクトになるから)

709デフォルトの名無しさん (ワッチョイ 234a-tprL)2018/11/29(木) 13:59:52.58ID:w8w+eTQL0
A : myControl.Font = new Font("MS UI Gothic", 9);
B : myControl.Font = mainForm.Font;

毎回上記のAのようにするならDisposeしても大丈夫だけどBみたいなことをすると
mainFormのフォントが勝手にDisposeされることになるからまずいから
自動プロパティとかにしてDisposeはGCに任せるか、内部的にはフォント名、サイズとかの
情報だけ持たせてgetterで毎回newする形にするしかないってことですかね?

710デフォルトの名無しさん (ワッチョイ 1a9a-hssQ)2018/11/29(木) 20:54:36.67ID:LaO1Tjsi0
>>707
Control継承するとFontプロパティもついてくると思うけど別に使うのかな?
>>709
蛇足気味だけど厳密にやりたいなら
set
{
Font ft = value as Font;
if (null != ft)
{
if (null != _myFont) _myFont.Dispose();
_myFont = new Font(ft.FontFamily, ft.Size, ft.Style, ft.Unit);
}
}
こんな感じかな。他はそのままで
set { _myFont = value; }でも大した問題起こらない気もする
もっとまじめに考察したいならILSPYでControlのFontプロパティがどうやっているか追っかけて確認してみるとか

711デフォルトの名無しさん (スップ Sd5a-+c7S)2018/11/30(金) 00:32:08.25ID:gtVMbwTAd
>>695
>>696
ありがとう
まずはアルゴリズムから見直してみます

712デフォルトの名無しさん (アウアウエー Sa52-C0zt)2018/11/30(金) 05:27:00.98ID:V3k5uXuMa
効果音(WAVファイル)鳴らしたいのだけど、VisualStudioのどこからインポートすればいいのでしょうか?

713デフォルトの名無しさん (ワッチョイ b693-t6tu)2018/11/30(金) 06:15:02.76ID:J243joLf0
解読班お願いします

714デフォルトの名無しさん (オイコラミネオ MM63-JqKq)2018/11/30(金) 08:02:22.89ID:6sbZJ6hoM
プログラム内に、リソースとして音楽ファイルを埋め込みたいのだと思われます

715デフォルトの名無しさん (ササクッテロ Sp3b-MyyE)2018/11/30(金) 08:18:04.02ID:ntAUD0F8p
ビルド完了時にファンファーレなどを鳴らしたいのだと思われます

716デフォルトの名無しさん (ワッチョイ fac3-MxA5)2018/11/30(金) 09:21:26.51ID:u/ExA4KN0
[Ctr]キー + [r]キーを押して、mmsys.cpl と入力して[Enter]キー
「サウンド」タブのプログラムイベントにあったはずだ

ってか、これはスレチだろ

717デフォルトの名無しさん (ワッチョイ 5fa5-DrDc)2018/11/30(金) 20:20:52.54ID:3yrtWl4o0
単にwavファイルを頭から再生するだけならSoundPlayerクラスでいいだろうけど
ループポイントいじったり波形まで触るような凝った再生するならWin32APIを使わないとダメだろうな
ってことが聞きたいんじゃね?

718デフォルトの名無しさん (スププ Sdba-aHfj)2018/11/30(金) 21:33:39.29ID:7tGVT0o8d
math.powでなくfor使ってa^b乗はどうやったらうまくいきます?

719デフォルトの名無しさん (オイコラミネオ MM63-JqKq)2018/11/30(金) 21:48:55.31ID:6sbZJ6hoM
誰か答えてやってくれ
俺には無理だ

720デフォルトの名無しさん (ワッチョイ 1ae3-r3MB)2018/11/30(金) 22:09:20.57ID:lmmOnpkX0
たぶん>>718
https://ideone.com/oocK7M
こういうのを求めているのでしょうか
うまくいく、の定義がよくわからないのでこんなんでかんべんしてけれ。

721デフォルトの名無しさん (スププ Sdba-aHfj)2018/11/30(金) 22:17:19.14ID:n5lF99wkd
天才あざす

722 ◆QZaw55cn4c (ワッチョイ ba60-4R1R)2018/11/30(金) 23:14:00.97ID:MkfLpznc0
>>717
wav ファイルの波形パターンを取り出してプログラムで適当に加工したあと win32api に渡すと音がなる、とかできるのでしょうか?API関数名はなんですか?

723デフォルトの名無しさん (ワッチョイ b7e3-Xv+l)2018/11/30(金) 23:27:45.95ID:t8hABf910
>>722
ググってすぐにソースが出てくんじゃん
やる気ねーなら消えろ

724 ◆QZaw55cn4c (ワッチョイ ba60-4R1R)2018/12/01(土) 00:01:20.94ID:J8cQMvWo0
>>723
thx!
waveOut がよさそうですね http://eternalwindows.jp/winmm/wave/wave00.html

725デフォルトの名無しさん (スププ Sdba-xVue)2018/12/01(土) 01:36:14.22ID:fxOs/Chqd
>>718
マクローリン展開かな

726デフォルトの名無しさん (ワッチョイ 9ab3-lzSb)2018/12/01(土) 15:10:50.09ID:BBiFvNwv0
For文でTaskの配列を使いたいんだけど

var task=new Task[10];
for(int i=0;i<10;++i)
{
int j=i; ←これ
task[i]=Task.Run(()=>{なんかjを使う処理;});
}

こんな風に変数の置き換えをしなきゃいけないのを処理する
なんか別のカッコいい方法ってありますか?

727デフォルトの名無しさん (アウアウウー Sa47-2gcu)2018/12/01(土) 15:24:16.02ID:ueqzOD9Qa
>>726
var tasks = Enumerable.Range(0, 10)
.Select(j => Task.Run(() => {なんかjを使う処理;}))
.ToArray();

728デフォルトの名無しさん (ワッチョイ b7e3-Xv+l)2018/12/01(土) 16:54:24.01ID:UFOjA6r40
>>726
var task=new Task[10];
for(int i=0;i<10;++i)
{
task[i]=Task.Run(()=>{なんかiを使う処理;});
}

729デフォルトの名無しさん (ワッチョイ a7c3-lzSb)2018/12/01(土) 17:01:29.48ID:6nS7jmt50
>>726
Parallel.Forじゃ駄目?

730デフォルトの名無しさん (ブーイモ MMba-D04G)2018/12/01(土) 17:03:32.28ID:q6i9ekrsM
>>728
残念ながら君より質問者のほうがC#をよく理解している
俺も727派だけど、別解としては for じゃなくて foreach (var i = Enumerable.Range( なら i をラムダ内でそのまま使っても問題ないよ(C#5以降)

731デフォルトの名無しさん (ワッチョイ b39d-hzet)2018/12/01(土) 17:04:04.70ID:QCT+flDQ0
static void Main()
{
Console.WriteLine("Begin");
var tasks = new []
{
Task.Factory.StartNew(() => Console.WriteLine("Task1 is running")),
Task.Factory.StartNew(() => Console.WriteLine("Task2 is running")),
Task.Factory.StartNew(() => Console.WriteLine("Task3 is running")),
};
int index = Task.WaitAny(tasks);
Console.WriteLine("Index = {0}", index);
Console.WriteLine("End");
}
}
New[]ってなに?

732デフォルトの名無しさん (ワッチョイ a7c3-lzSb)2018/12/01(土) 17:08:08.57ID:6nS7jmt50
>> 731
new Task[]の省略形
型は{}の初期化部から推論してる

733デフォルトの名無しさん (ワッチョイ b39d-hzet)2018/12/01(土) 17:16:05.12ID:QCT+flDQ0
ああそいうことなの、ありがとう。推論しすぎだよ。W

734デフォルトの名無しさん (ワッチョイ b39d-hzet)2018/12/01(土) 17:21:20.93ID:QCT+flDQ0
tasks Newしてるのにスタートしてないのも推論?

735デフォルトの名無しさん (ワッチョイ a7c3-lzSb)2018/12/01(土) 17:28:40.81ID:6nS7jmt50
>>734
関係ない。単なる勘違い。
var tasks = new Task[]は配列の入れ物を作成してるだけで、
配列の中身はTask.Factory.StartNew()でスタート済み。

736デフォルトの名無しさん (ワッチョイ 0eeb-hzet)2018/12/01(土) 18:50:52.76ID:4Hpcan/K0
便乗で低レベルな質問してすまんが、なんでこれの実行結果って10のみになるの?
なんか0〜9の10行になりそうな気がしちゃったんだけど・・・・どうして!?

using System;
using System.Threading;
using System.Threading.Tasks;

public class Test
{
public static void Main()
{
var task = new Task[10];
for(int i=0;i<10;i++)
{
task[i]=Task.Run(()=>Console.WriteLine(i));
}
}
}

737デフォルトの名無しさん (ワッチョイ 0eeb-hzet)2018/12/01(土) 18:58:25.70ID:4Hpcan/K0
たまたまメインスレッドで動いたやつだけConsole.WriteLineが動くとかそういうのなのかな?

738デフォルトの名無しさん (アウアウエー Sa52-70Pl)2018/12/01(土) 19:01:42.33ID:jlV8A3xFa
>>736
ラムダ式の変数のキャプチャを理解した方がいいよ

739デフォルトの名無しさん (ワッチョイ b676-xVue)2018/12/01(土) 19:36:32.06ID:IDJAnGVn0

740デフォルトの名無しさん (ワッチョイ 0eeb-hzet)2018/12/01(土) 21:00:00.35ID:4Hpcan/K0
ありがとう!なんで10になるのかはわかったよ
ただ次になぜ10が10個並んじゃわないのかが全然わかんなくなってきたぜ・・・・

741デフォルトの名無しさん (ワッチョイ b676-xVue)2018/12/01(土) 21:02:51.31ID:IDJAnGVn0
>>740
forループの実行中にTaskが開始されてるからでしょ

742デフォルトの名無しさん (ワッチョイ 0eeb-hzet)2018/12/01(土) 22:13:11.50ID:4Hpcan/K0
>>741
forループ中にTaskが開始されるとなぜ1つになっちゃうのか全然わからなんだ・・・・

743デフォルトの名無しさん (ワッチョイ 8a7e-o5Pc)2018/12/01(土) 22:53:47.54ID:THW+jwSM0
メインスレッドが即座に終了して出力なしの方がザラだと思うが
明示的に待たないとTaskの完了など知った事ではないよ

というか徒に増やした所でメモリ帯域とかで躓くのがオチ
Taskは非同期だし、並列実行が望みならGPGPUなりを…

744デフォルトの名無しさん (ブーイモ MMba-D04G)2018/12/01(土) 22:57:20.39ID:q6i9ekrsM
たかが10要素だし、配列に入れてるんだからWhenAllとかで待てるだろ
直行する問題を分離できないおバカさんかな

745デフォルトの名無しさん (ワッチョイ 9ab3-lzSb)2018/12/01(土) 23:13:24.31ID:BBiFvNwv0
>>727-730
ありがとうございました。いい方法あったんですね
そろい踏みで
var task = new Task[10];
for (int i = 0; i < 10; i++)
{ int j = i; task[i] = Task.Run(() => Console.WriteLine("a={0}", j)); }

var tasks = Enumerable.Range(0, 10).Select(i => Task.Run(() => {Console.WriteLine("b={0}",i);})).ToArray();

var task2 = new Task[10];
for (int i = 0; i < 10; i++)
{ task2[i] = Task.Run(() => Console.WriteLine("c={0}", i)); }

foreach (var i in Enumerable.Range(0, 10)) { Console.WriteLine("d={0}", i); }

Console.ReadKey();

で何回か試してみると、foreachだけは必ずタスクの起動順が順番通りで揃うんですね
ちょっとこれを使ってみます

746デフォルトの名無しさん (ワッチョイ 23da-UzSb)2018/12/01(土) 23:22:08.99ID:R6GB4fM+0
>>745
foreachのはTask作ってない。他に合わせるなら
foreach (var i in Enumerable.Range(0, 10)) { Task.Run( () => {Console.WriteLine("d={0}", i); } }
でないとおかしい。

747デフォルトの名無しさん (ワッチョイ 8a7e-o5Pc)2018/12/01(土) 23:22:16.02ID:THW+jwSM0
foreachだけはTaskどころか普通の同期処理だが…?

748デフォルトの名無しさん (ブーイモ MMba-D04G)2018/12/01(土) 23:23:22.50ID:q6i9ekrsM
>>745
いやそれforeachはTaskによる実行になってないぞ
foreach使うならループの中は>>728のおバカさん版と同じにしないといけない(ただし>>728とは違って意図通りに動作する)

749デフォルトの名無しさん (ワッチョイ b7e3-Xv+l)2018/12/01(土) 23:28:44.22ID:UFOjA6r40
意味わからんな

750デフォルトの名無しさん (スププ Sdba-xVue)2018/12/01(土) 23:57:08.18ID:cajtydEwd
>>749
この馬鹿ちんが

751デフォルトの名無しさん (ワッチョイ 9ab3-lzSb)2018/12/01(土) 23:59:39.62ID:BBiFvNwv0
>>746-749
ああ、ほんとだ>>745で書いたの間違ってら。。。
何やってんだ俺。。。

var task3 = new Task[10];
foreach (var i in Enumerable.Range(0, 10))
{
task3[i] = Task.Run(() => Console.WriteLine("d={0}", i));
}

これであってんのかな

752デフォルトの名無しさん (ワッチョイ b7e3-Xv+l)2018/12/02(日) 00:15:47.90ID:y4RDtfAe0
そんな簡単なコード間違えるような記述方式なのに頭おかしい

753デフォルトの名無しさん (ワッチョイ b676-xVue)2018/12/02(日) 00:27:50.88ID:heWd1TkG0
>>752
日本語おかしい

754デフォルトの名無しさん (ワッチョイ b7e3-Xv+l)2018/12/02(日) 01:08:52.07ID:y4RDtfAe0
こんな簡単なコードでバグってるのかよ
やっぱりラムダはクソだな

755デフォルトの名無しさん (ワッチョイ 9ab3-lzSb)2018/12/02(日) 09:05:24.28ID:VRa40hbi0
ラムダ式って
void method()
{
int x = 1;
int y = 10;
Action a = () => {Console.WriteLine( x + y); };
a.Invoke();
x += 100;
a.Invoke();
}
こうやってメソッド内に導入した瞬間にこのメソッドが
class クラス名が非表示のクラス
{
int x;
int y;
void a()
{
Console.WriteLine(this.x + this.y);
}
public void method()
{
this.x = 1;
this.y = 10;
a();
this.x+=100;
a();
}
}
みたいに勝手にクラス化されて変数が内部でフィールド扱いになるって理解でいい?

756デフォルトの名無しさん (アウアウエー Sa52-70Pl)2018/12/02(日) 12:15:35.79ID:uCltPpgZa
>>755
そういう理解だと、例えば>>736のコードみたいな挙動は説明しづらいんじゃない?
機能的に等価なコードに置き換えるんじゃなくて、ありのままを理解した方が簡単だと思うよ。

757デフォルトの名無しさん (ワッチョイ b676-xVue)2018/12/02(日) 12:25:04.16ID:heWd1TkG0
生成されたアセンブリをILSpyで逆アセンブルすると参考になるよ

758デフォルトの名無しさん (ドコグロ MM83-Xv+l)2018/12/02(日) 12:25:51.63ID:wepbCU4lM
こんな雑魚コードでそこまでしないと挙動のわからない欠陥品

759デフォルトの名無しさん (ワッチョイ 4e81-bxW6)2018/12/02(日) 14:08:20.38ID:9iE6z7au0
雑魚はこんなこともりかいできないのか
生活が大変そうですね…
ああでも雑魚は特養で生活してるから大丈夫だね
よかった

760デフォルトの名無しさん (ワッチョイ 4b9f-GnKV)2018/12/02(日) 15:05:44.53ID:1mt10vUo0
質問です
staticなclassに機密情報を保持してプロジェクト内のすべてのコードから参照して利用できるようにしたいです
その場合、改竄を防ぐために決められた場所(コード)からしかsetできないようにしたいですがどうすればいいでしょうか?
また他プロセスからのメモリ改竄はどのように対策をすればいいでしょうか?

761デフォルトの名無しさん (オッペケ Sr3b-eb2q)2018/12/02(日) 15:25:34.83ID:8Z0+kDxur
>>760
c#アプリに機密情報なんか書き込むな

762デフォルトの名無しさん (ワッチョイ 4b9f-GnKV)2018/12/02(日) 15:26:44.53ID:1mt10vUo0
>>761
書き込みじゃありません保持です
具体的には受け取った値をメモリ上に置いてそれを各所で参照します

763デフォルトの名無しさん (ワッチョイ a7c3-lzSb)2018/12/02(日) 15:45:30.50ID:XLvYoqNs0
>>760
他プロセスからの保護は、System.Security.Cryptographyの
ProtectedMemory.Protect()でMemoryProtectionScope.SameProcessを指定するとかかな

764デフォルトの名無しさん (ワッチョイ 4b9f-GnKV)2018/12/02(日) 15:49:14.43ID:1mt10vUo0
>>763
情報ありがとうございます
さっそく調べてみます

765デフォルトの名無しさん (ワッチョイ a7c3-lzSb)2018/12/02(日) 15:55:25.15ID:XLvYoqNs0
特定の呼び出し元からのみ設定に関しては、StackTraceで呼び出し元を確認かな。
Caller Infoだと微妙か。

766デフォルトの名無しさん (ワッチョイ dbb8-C0zt)2018/12/02(日) 15:55:38.27ID:yai2DppL0
メモリを直接書き換えてくるような攻撃だとアクセス修飾子なんて一切関係なく書き換えられるし、そもそもその後のif文自体を書き換えたりとかしてくるから一定レベル以上の攻撃は防げない
とりあえずxor暗号程度で保持しとくとかは?
get => 機密情報 ^ 0x01234567;
set => 機密情報 = value ^ 0x01234567;

767デフォルトの名無しさん (アウアウエー Sa52-70Pl)2018/12/02(日) 15:57:52.77ID:uCltPpgZa
>>760
前者はセッターをinternalにするのが一番素直で分かりやすいと思う

768デフォルトの名無しさん (ワッチョイ 4b9f-GnKV)2018/12/02(日) 16:00:32.72ID:1mt10vUo0
>>765
>>766
>>767
ありがとうございます
参考にさせていただきます

769デフォルトの名無しさん (ワッチョイ 23da-UzSb)2018/12/02(日) 16:23:19.21ID:3wF0RuQO0
>>767
アクセス修飾子での制限はリフレクションで簡単に突破される

770デフォルトの名無しさん (アウアウエー Sa52-70Pl)2018/12/02(日) 17:32:37.60ID:uCltPpgZa
>>769
当たり前やん。

悪意と不注意は区別する必要がある。

前者に対する防衛法を語る能力を俺は持ってないので
後者について言ったまで

771デフォルトの名無しさん (オッペケ Sr3b-eb2q)2018/12/02(日) 17:55:56.69ID:8Z0+kDxur
そもそもお漏らししてもいい案件だけやる

772デフォルトの名無しさん (ワッチョイ 23da-UzSb)2018/12/02(日) 18:07:52.27ID:3wF0RuQO0
>>770
>>760が訊いてるのは悪意対策だろ…

773デフォルトの名無しさん (ワッチョイ 171d-MyyE)2018/12/02(日) 19:18:46.11ID:wUrRop5j0
リフレクションって何?

774デフォルトの名無しさん (ワッチョイ e717-r3MB)2018/12/02(日) 20:03:59.45ID:Vovs5evr0
ggrks

775デフォルトの名無しさん (ワッチョイ f68a-C0zt)2018/12/02(日) 22:24:30.53ID:h/Y7nr/g0
文字列を変数名として扱う仕組みのこと

776デフォルトの名無しさん (ブーイモ MMba-v8/O)2018/12/02(日) 22:36:49.76ID:AtVX1yZrM
>>774
答えられないなら黙ってればいいのに

777デフォルトの名無しさん (ワッチョイ 0bb3-JqKq)2018/12/02(日) 22:42:42.22ID:HHTlCBKM0
>>776
それはお前も同じ

778デフォルトの名無しさん (ワッチョイ b676-xVue)2018/12/03(月) 01:50:08.39ID:CtimMCgY0
>>777
え???

779デフォルトの名無しさん (ワッチョイ 4e81-bxW6)2018/12/03(月) 09:10:29.70ID:7GT4duU30
>>778
マジガイジかよ…
生ゴミはとっととくたばれ

780デフォルトの名無しさん (スププ Sdba-xVue)2018/12/03(月) 10:30:31.17ID:58uLWeIid
>>779
お前がな

781デフォルトの名無しさん (ワッチョイ b39d-hzet)2018/12/03(月) 14:27:17.52ID:1qcFF+t30
ClassA,ClassB,,,のインスタンスをJsonで保存したい。

Class Ihozon{
void init(){} //変数を初期化
string serialize(ClassA str){ }
ClassA deserialize( string json){ }
}
というインターフェースを作って保存処理は共通化したいと思うのだが、Serializeするのにクラス名の
引数が必要になるので共通化できない。こういう場合どうしたらいいの?

782デフォルトの名無しさん (アウアウエー Sa52-70Pl)2018/12/03(月) 15:09:15.55ID:kXdIrz5+a
>>781
ちょっと何言ってるのかよく分からないところがあるので
勘違いかもしれないけど、普通にジェネリックメソッドにするだけじゃないの?

public static string JsonSerialize<T>(T obj) {...}
public static T JsonDeserialize<T>(string json) {...}

783デフォルトの名無しさん (ワッチョイ b39d-hzet)2018/12/03(月) 15:51:51.32ID:1qcFF+t30
jeneric interface をつかったらいいんだね。できました。ありがとう。

784デフォルトの名無しさん (ササクッテロレ Sp3b-QMby)2018/12/03(月) 16:33:19.27ID:k9BWMLgHp
インスタンスを保存して何か良い事あるのか?
言葉の違いなだけならいいが…クラス内の値を保存するんだよな?
クラスのある位置を示すポインタを保存するんじゃないんだよな?

785デフォルトの名無しさん (スププ Sdba-xVue)2018/12/03(月) 16:45:46.51ID:wi/+8SfFd
>>784
アスペ

786デフォルトの名無しさん (ワッチョイ b39d-hzet)2018/12/03(月) 17:31:56.17ID:1qcFF+t30
public interface Ijson<T> {
T deserialize(string json);
string serialize(T js);
void init();
}
public class ClassA : Ijson<ClassA>
{ }
ClassAをシリアライズしたいのだけでど、Interfaseするんはわかったんだが内部に
つねに class ClassFile{ void FileSave() {} void FileLoad(){} } を継承もしたい。
(中が固定なのでいちいち実装したくない)
ClassA A = new ClassA();
A.FileLoad(); // これでAはファイルデータで初期化したい。
継承とinterfaceを同時にやるってどうやるの?

787デフォルトの名無しさん (スプッッ Sd5a-VqKd)2018/12/03(月) 17:49:03.84ID:PYYWjLDMd
System.Web.Mail.MailMessageクラスのFieldプロパティでCDOのFieldを追加してました。

System.Webは古いからSystem.Net.Mailを使えと警告が出るので置き換えようとしてみたところ、対応する方法が見つかりませんでした。
ご存知の方いないでしょうか。

788デフォルトの名無しさん (ワッチョイ b39d-hzet)2018/12/03(月) 18:01:20.51ID:1qcFF+t30
>>786
自己解決:Interfaseやめてジェネリックのクラス使えばできました。

789デフォルトの名無しさん (ワッチョイ b39d-hzet)2018/12/03(月) 21:15:19.45ID:1qcFF+t30
別のプロジェクトからCopy してきた Form1をNameSpace名をこのプロジェクトに
あわせて
var fm = new Form1();
fm.ShowDialg();
とやっても、空のフォームが立ち上がる。なぜなんだろう?

790デフォルトの名無しさん (アウアウエー Sa52-70Pl)2018/12/03(月) 22:08:22.85ID:jwp068Q1a
>>789
エディタのキャッレットを
> var fm = new Form1();
この行のForm1の箇所に置いてF12を押す

791デフォルトの名無しさん (ワッチョイ a7c3-lzSb)2018/12/03(月) 22:10:11.00ID:yskaDDV40
>>786
もう解決してるみたいだけど、一応。
Interfaceと継承を指定する場合は、カンマ(,)で区切って並べるだけ。

792デフォルトの名無しさん (ワッチョイ b39d-hzet)2018/12/04(火) 04:22:30.94ID:16QpsEK/0
>>790
ありがとう。解決しました。
InitializeCompornent();の呼び出しが消えていた。
なんでだろ。消した覚えはないんだけど。

793デフォルトの名無しさん (ワッチョイ b39d-hzet)2018/12/04(火) 04:55:27.00ID:16QpsEK/0
>>791
interfaceを使えないかトライしてみましたが、どうもうまく行かないです。
ClassFileはIjsonをインターフェースする必要があって、Ijsonのinit()はClassAのプロパティや
変数の初期化なのでClassAの中でしか実装できません。なので
ClassFile:Ijson<ClassA>
ClassA:ClassFile<ClassA>
のような構成になります。しかし問題があります。
問題:ClassFileの中ではinit()は実装したくないのに、実装を余儀なくされるが、初期化したい変数は
ClassAの中にあるので困る。

794デフォルトの名無しさん (ワッチョイ b39d-hzet)2018/12/04(火) 05:04:31.89ID:16QpsEK/0
clsAのインスタンスに代入する方法ってこれでいいのでしょうか?
public class clsA: clsJson <clsA>
{
public void ParamLoad() {
clsGamenParam v = this;
v = base.ParamLoad();
}
}

public class clsJson<T>{
public T ParamLoad(string IniName = "") {
T param = default (T);
param = deserialize(json);
return param;
}
}

795デフォルトの名無しさん (アウアウエー Sa52-C0zt)2018/12/04(火) 10:13:14.55ID:4uTJLjzta
splitcontainerで上下分割してて、
最大化させてもpanel1の方は縦幅(height)は変わらないようにしたいのだけど
どのプロパティで設定できるのでしょうか

796デフォルトの名無しさん (ササクッテロレ Sp3b-QMby)2018/12/04(火) 10:17:41.08ID:1iwBpvbbp
初期化を隠蔽したい?
なら隠しメンバーに初期化済みフラグを持つことだな。

797デフォルトの名無しさん (ワッチョイ 3e23-+kBR)2018/12/04(火) 10:29:22.89ID:P8iyvSfE0
>>795
FixedPanel

798デフォルトの名無しさん (ワッチョイ 5a9b-m+hN)2018/12/04(火) 22:37:30.63ID:TaxB7EJj0
ピクチャーボックスに線を書くとか丸を書くとかした後にクリックで線を選択出来たりとかします?
エクセルで言うオートシェイプ見たいな感じで

799デフォルトの名無しさん (ブーイモ MM67-D04G)2018/12/04(火) 22:40:16.97ID:zGwuExf2M
>>798
できません

800デフォルトの名無しさん (ワッチョイ e717-r3MB)2018/12/04(火) 22:41:05.29ID:LDdnm3po0
出来るよ
日本じゃコード例殆ど無いけど海外ならそこそこ見つかる

801デフォルトの名無しさん (ブーイモ MM67-D04G)2018/12/04(火) 22:44:12.07ID:zGwuExf2M
そりゃスクラッチで作ればできるだろうな
>>798のような質問をしてるレベルならまず無理だが

802デフォルトの名無しさん (アウアウエー Sa52-70Pl)2018/12/04(火) 23:34:36.38ID:S3l73Gw8a
>>798
円や直線みたいな単純な図形でアンチエイリアスとかも不要なら
確かVBer向けのシェイプコントロールってのがあったはずだから、それを使えば一発だね
http://www.atmarkit.co.jp/fdotnet/dotnettips/781winlineshape/winlineshape.html
描画するんじゃなくて子コントロールを加える形になると思うけど

803デフォルトの名無しさん (スプッッ Sd5a-KXwy)2018/12/05(水) 13:01:06.99ID:6cU8181gd
シングルトンパターン実装が面倒だからstatic実装をしてしまう私は雑魚なのでしょうか
いつインスタンスが作られるかぐらいの差しかないんじゃないのぉぉぉお起動時に一度だけ呼ぶ使われ方ならぁぁぁあ

804デフォルトの名無しさん (ワッチョイ dbb8-o5Pc)2018/12/05(水) 13:04:16.51ID:aXYPARRR0
ソロなら何でもいいよ

805デフォルトの名無しさん (ブーイモ MMba-D04G)2018/12/05(水) 13:24:54.14ID:mkn+H/81M
>>803
グローバル変数を作る目的でシングルトンにするくらいなら、Globalクラスでも作ってそのstaticフィールドとして持たせて共有したほうがマシ
シングルトンが用いられる大抵のケースでは、アプリでクラスAのインスタンスが一つしか必要とされないという要件を、
誤ってクラスA側に持ち込んでしまい不必要な制限をクラスAに対して与えている
基本的にシングルトンはアンチパターンであり、使うべきではないと考えておけばいい

806デフォルトの名無しさん (ササクッテロ Sp3b-prQC)2018/12/05(水) 13:58:19.38ID:p3OBsqIWp
グローバル変数が必要になったケースというのが今までにない気がする

807デフォルトの名無しさん (ドコグロ MMba-Xv+l)2018/12/05(水) 18:56:11.79ID:ZBoGDzWjM
ログとかデバッグ用情報とかあったほうがよくね?
引数にログ渡すのも面倒やし

808デフォルトの名無しさん (ドコグロ MMba-Xv+l)2018/12/05(水) 19:00:23.97ID:ZBoGDzWjM
すべてのインスタンスをグローバル神クラスに突っ込む方法で管理してる現場も
案外良かったよ
リークの類に強いのがよかった
ひと目でわかるし

809デフォルトの名無しさん (アウアウエー Sa52-70Pl)2018/12/05(水) 19:14:24.09ID:24zuz0jWa
>>803
C#のstaticクラス導入の理由の少なくとも一つがそれだったはずだから
いいんじゃないですか

>>805
おおむねその通りだと思うけど、質問の答えになってない気がするw

810デフォルトの名無しさん (ワッチョイ a7c3-QMby)2018/12/05(水) 20:00:32.14ID:xXLuhtRv0
えーリソースひとつしか無いのにあちこちで呼ばれて困るわ。セマフォ使うにもシングルトンにしないと意味ないし。

811デフォルトの名無しさん (ワッチョイ 1a06-C0zt)2018/12/05(水) 21:40:54.86ID:9TXdxV+e0
そこでPrism.Unity等のDIコンテナですよ

812デフォルトの名無しさん (ワッチョイ abeb-3M3s)2018/12/06(木) 17:22:48.54ID:PXx1OaoO0
そういやDIコンテナってどういう仕組みになってんのか全然わからん
コンストラクタの引数をインターフェイスにするだけで、登録済みのオブジェクトを自動的に注入してくれるわけだけど・・・・
あれってコンストラクタの呼び出し側は一体どんな仕組みになってるの?
そもそも引数のインターフェースを増やそうが減らそうがコンパイルエラーが起きないって、呼び出す側は一体どうなってるのかしら

813デフォルトの名無しさん (ブーイモ MMb3-AsR1)2018/12/06(木) 17:34:01.28ID:hvLOwgvNM
>>812
普通にリフレクションで引数の情報取ったりコンストラクタ呼んでインスタンス作ったり簡単にできる

814デフォルトの名無しさん (ワッチョイ abeb-3M3s)2018/12/06(木) 17:45:26.67ID:PXx1OaoO0
>>813
ありがとう
リフレクションは全然使ってなかったので勉強してくるよ

815デフォルトの名無しさん (ワッチョイ 899e-ZtDu)2018/12/06(木) 23:07:45.72ID:LqRlvnk/0
リフレションとかバカしか使わないわ

816デフォルトの名無しさん (ワッチョイ d9e3-k/Y9)2018/12/06(木) 23:24:16.18ID:8fboZWCH0
デバッグ用に良さそうと思ってたら
winformにそのものがあるしね

817デフォルトの名無しさん (ワッチョイ b3eb-xqdQ)2018/12/06(木) 23:24:59.62ID:8KxpykpJ0
属性で使いまくってるじゃん

818デフォルトの名無しさん (ワッチョイ 899e-ZtDu)2018/12/06(木) 23:47:06.96ID:LqRlvnk/0
リフレクションはウンコみたいな依存関係を作る元凶だからな
まともなヤツならまず使わない

819デフォルトの名無しさん (ワッチョイ 5b76-Pwcg)2018/12/06(木) 23:55:23.28ID:FaxHPz5Y0
リフレクションは便利だよね
時々使うわ

820デフォルトの名無しさん (スフッ Sdb3-Pwcg)2018/12/06(木) 23:57:45.21ID:cH+4Ya2yd
リフレクションは普通に使うわな

821デフォルトの名無しさん (ワッチョイ 899e-ZtDu)2018/12/07(金) 00:12:46.91ID:0/x3pMw+0
こうやってクソみたいな依存関係のあるクソコードが量産されていくのがよくわかる

822デフォルトの名無しさん (ワッチョイ 899e-ZtDu)2018/12/07(金) 00:14:25.89ID:0/x3pMw+0
AというオブジェクトからBというオブジェクトにアクセスする場合
よほどの理由がないかぎりBからAにアクセスすることは避けないといけない

できるだけコンポジションにするべき
この場合、AがBを内包するようにする

コレはシロウトでなければ常識の問題だからな

823デフォルトの名無しさん (ワッチョイ 5b76-Pwcg)2018/12/07(金) 00:21:54.56ID:XLGZ01Wf0
リフレクション最高
これからも積極的に使おう

824デフォルトの名無しさん (ワッチョイ d9e3-k/Y9)2018/12/07(金) 00:27:55.79ID:OtTuCL9w0
>>822
> AというオブジェクトからBというオブジェクトにアクセスする場合
> よほどの理由がないかぎりBからAにアクセスすることは避けないといけない
何で?

例えば俺がAでお前がBだったとする
俺からお前を殴るかもしれんし
お前から俺を殴るかもしれん

どちらにしろ
お前はすでに死んでいる

825デフォルトの名無しさん (ワッチョイ 418a-Po2/)2018/12/07(金) 00:28:53.29ID:frCtIBO+0
おめえに俺はなぐれねえ

826デフォルトの名無しさん (ワッチョイ 93d2-2OAS)2018/12/07(金) 00:29:03.36ID:u+M3piYs0
>>815
おばか

827デフォルトの名無しさん (ワッチョイ 899e-ZtDu)2018/12/07(金) 00:32:37.34ID:0/x3pMw+0
低学歴知恵遅れほど
継承とリフレクションをうれしがって多用するからな

まさに
オブジェクト指向に低学歴知恵遅れは
キチガイに刃物

828デフォルトの名無しさん (アウアウエー Sa23-M/db)2018/12/07(金) 00:37:33.94ID:UtwEaJZea
おじさんはこれを思い出した


829デフォルトの名無しさん (スフッ Sdb3-Pwcg)2018/12/07(金) 00:44:42.63ID:yHtgxfh3d
リフレクションを使わないソースコードなんて気の抜けたコーラだろ

830デフォルトの名無しさん (ワッチョイ 93d2-2OAS)2018/12/07(金) 01:12:03.95ID:u+M3piYs0
使ってることに気づいてないだけ

831デフォルトの名無しさん (ワッチョイ e18a-nOOm)2018/12/07(金) 03:53:19.21ID:4tv6nv6l0
64bitの.NET Core でSQLite使いたい時はどれ落とせばいいんですか?
http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

.NET Core用のは以下の1つしかないっぽいけど、これ使うと、"間違ったフォーマットのプログラムを読み込もうとしました。"とエラーが発生します。
Precompiled Binaries for the .NET Standard 2.0 (.NET Core 2.0)

過去の.net frameworkの経験上、bit違いでこのエラーが出るようなんですが、Core用SQLite.dllが上記しかないので、どうしようもない状態です。

832デフォルトの名無しさん (ワッチョイ 93d2-2OAS)2018/12/07(金) 07:11:23.20ID:u+M3piYs0
EF Coreのマイグレーションで自動生成したことしかないわ

833デフォルトの名無しさん (ワッチョイ 89f7-e/g/)2018/12/07(金) 08:35:25.92ID:TvdhMF8B0
気ままにREFLECTION

834デフォルトの名無しさん (アウアウエー Sa23-AsR1)2018/12/07(金) 08:37:40.31ID:2afnIVVGa
>>831
Coreなら尚更だけど、今時手動でDLLを入れるのはやめろ
NuGetで一発

835デフォルトの名無しさん (スッップ Sdb3-2OAS)2018/12/07(金) 08:55:42.95ID:CXp+sqegd
ああdllの話かw
こないだNuGet知らないやつがいて驚いたわ

836デフォルトの名無しさん (オイコラミネオ MMdd-KJ8f)2018/12/07(金) 09:11:59.73ID:t0xhrKmJM
リフレクションが止まらない

837デフォルトの名無しさん (ワッチョイ 9306-n9Ol)2018/12/07(金) 09:28:53.50ID:0Ncculaf0
>>831
UWPでは、System.Data.Sqliteとは別系統のMicrosoft.Data.SQliteというMSご謹製のライブラリがあるのでそっちを使ってください
ちなみにDapperはマトモ動きませんのでEF Core使うか直にADOやらないと駄目だけどね

838デフォルトの名無しさん (スッップ Sdb3-2OAS)2018/12/07(金) 10:45:05.23ID:CXp+sqegd
>>837
Dapperについて詳しく

839デフォルトの名無しさん (ササクッテロル Spcd-PmsZ)2018/12/07(金) 11:26:29.25ID:7aBH+ygYp
リフレクションはgotoみたいな弊害があるって話?

840デフォルトの名無しさん (ワッチョイ 2b80-7TzT)2018/12/07(金) 11:35:57.70ID:cSzYN2du0
漏れは、様々なアプリから使うために、C:\sqlite3 に、すべてを入れているけど。
ただし、C# は使わないけど

sqlite3.def, sqlite3.dll, sqlite3.exe

sqldiff.exe, sqlite3_analyzer.exe

841デフォルトの名無しさん (ワッチョイ d3c3-w3AN)2018/12/07(金) 13:46:34.33ID:0JAGvuKR0
[ProgramFilesFolder]
あんたのアプリケーション.exe
[x64]
SqliteInterop.dll(64ビット)
[x86]
SqliteInterop.dll(32ビット)

842デフォルトの名無しさん (ワッチョイ 9306-n9Ol)2018/12/07(金) 19:36:33.84ID:0Ncculaf0
>>838
Debugモードで動いたけどReleaceモードにしたら落ちた
詳しく調べるのもめんどいからプロジェクトから削除してADO+EFにしたよ

843デフォルトの名無しさん (ワッチョイ 899e-ZtDu)2018/12/07(金) 21:14:47.96ID:0/x3pMw+0
やっぱりバカはいまだにうるう秒がどういうもんなのかすら分かってない
低学歴っていちいち低学歴を自白するからな

そして低学歴の知ったかドイチェ語
すぐに分かるのが恐ろしいわ。。。

844デフォルトの名無しさん (ワッチョイ 899e-ZtDu)2018/12/07(金) 21:21:23.93ID:0/x3pMw+0
>>843
コレは誤爆だ

リフレクションで問題になるのは
オブジェクトの依存関係になるのは常識だからな

845デフォルトの名無しさん (スフッ Sdb3-Pwcg)2018/12/07(金) 22:48:18.29ID:r9qu/Drmd
リフレクションなしのコーディングなんて考えられんわ

846デフォルトの名無しさん (ラクッペ MM6d-rIoR)2018/12/07(金) 22:49:15.01ID:oQAxDUYpM
ウェルカムトゥアンダーグラウンド並みに酷い

847デフォルトの名無しさん (ワッチョイ 5b93-Hr0L)2018/12/08(土) 01:40:50.37ID:bqexRm9V0
暫く泳がせてたが
オブジェクトの依存関係はリフレクションとは直接関係ないけどな

メタデータ触るには不可欠だし
ライブラリ周り作るにも必要なケースは多い

自称上級者が継承やらリフレクションや使ってドヤって害悪なのは同意

848デフォルトの名無しさん (ササクッテロル Spcd-PmsZ)2018/12/08(土) 14:58:00.11ID:AfMSmz/np
呼び出し方向を一方通行に制限するのは、循環呼び出しを避ける為だから。

849デフォルトの名無しさん (ワッチョイ 899e-ZtDu)2018/12/08(土) 15:59:48.92ID:f0K+9NgH0
ぜんぜん違う

このスレにいるような池沼が作らなければ
クラスライブラリも階層(ココで階層は継承の階層ではない)や種類で作るからな

低い階層に行けばいくほど単純な簡単な機能を提供するクラスになる
階層は完全に分離させて独立したライブラリにする

そして明確に種類の異なるプリミティブがある場合は
ライブラリを完全に分離させて独立したライブラリにする

その上にアプリケーションを実現するクラス群がのっかる

低学歴知恵遅れが作るとすべて同じ階層で同じ種類になる

850デフォルトの名無しさん (ワッチョイ 899e-ZtDu)2018/12/08(土) 16:01:14.77ID:f0K+9NgH0
当然、低レベルな部分を実現するクラスライブラリと
アプリケーションが主に利用する中間層のクラスライブラリと
アプリケーション自体を記述するクラス群は
シロウトでもないかぎり完全に分離するからな

低レベルな部分を実現するクラスライブラリは
当然、中間層のクラスライブラリやアプリケーション自体を記述するクラス群を
参照することはまずない

アプリケーションが主に利用する中間層のクラスライブラリは
アプリケーション自体を記述するクラス群を参照することはまずない

低学歴知恵遅れが作ると酷い依存関係ができる
コレはオブジェクト指向関係なくライブラリの基本だからな

851デフォルトの名無しさん (ワッチョイ 899e-ZtDu)2018/12/08(土) 16:04:06.83ID:f0K+9NgH0
組織でたとえるならこうなるからな

 経営者クラス 社員をこき使う
  ↓
 社員クラス ← 派遣をこき使う(職階ごとの複数の中間層)
  ↓
 派遣クラス ← キミラが担当するような低レベルな部分の単純作業(つまりキミラ)

派遣は社員の作業も役員の作業もしない
社員は役員の作業はしない

関数の行数が多いのは
作業を整理して作業を手順化して
派遣にうまく単純作業を割り当てれてないのと同じだからな
つまり、人に仕事させないと自分の作業が増える

キミラは派遣ドカタだからな、そういう作業はできないのは分かる

当然作業ミス(例外)が発生してスルーし続けてたら上までいく

852デフォルトの名無しさん (ワッチョイ 2b81-rIoR)2018/12/08(土) 16:05:41.25ID:BPUiFCQU0
3行にまとめられない奴の発言は読む価値がないって本当だわ

853デフォルトの名無しさん (ワッチョイ 899e-ZtDu)2018/12/08(土) 16:05:53.18ID:f0K+9NgH0
例えば扱うビジネスの領域が違えば
部門を分けることになる

会社に複数の部門があっても一つの会社だからな
種類で分けるというのはそういうことになる

キミラみたいな一種類の単純作業しかしてないヤツラには関係ないワケ

854デフォルトの名無しさん (ワッチョイ 899e-ZtDu)2018/12/08(土) 16:06:15.85ID:f0K+9NgH0
というわけでな
キミラは刺身にタンポポのせる作業に戻りなさい
キミラにはムリ

855デフォルトの名無しさん (ワッチョイ 899e-ZtDu)2018/12/08(土) 16:10:10.36ID:f0K+9NgH0
いちいちタンポポ載せてる作業経過報告はいらない
作業の補助とか、いちいち次になにをするかとかとか指示はしないからな

タンポポが地面に落ちたとかこのタンポポのハナ小さいとか
そういう報告(リフレクション)もいらない
捨てときなさい
それぐらい分かるだろう

タンポポが足りなくなりそうになったら
この台帳に書いときなさい
コレだけはたまに見といてやるからな

キミラのコーディングは自身がおかれてる立場と
まったく一致してるワケ

856デフォルトの名無しさん (オイコラミネオ MMdd-Hr0L)2018/12/08(土) 16:25:26.23ID:pq+LKchRM
プロジェクト適切に分けて
依存関係の正規化しろって話だろうに

リフレクションは関係ないしな
その程度の理解やから長い寝言いってる

857デフォルトの名無しさん (ワッチョイ 899e-ZtDu)2018/12/08(土) 16:26:20.22ID:f0K+9NgH0
所詮、派遣ドカタ
残念なことに派遣ドカタのレスなんか
すぐにわかるわ

858デフォルトの名無しさん (ワッチョイ 899e-ZtDu)2018/12/08(土) 16:28:18.82ID:f0K+9NgH0
バカに限って抽象化とかいって
サルみたいにうれしがって継承するからな

破綻はそこから始まる

しばらくほっとくと
データ受け渡しするために
無秩序に相互参照しはじめる

こうなったら終わりの始まり

859デフォルトの名無しさん (ワッチョイ 93a5-T+E4)2018/12/08(土) 16:41:33.73ID:MYwA5eIj0
質問です
ifの条件に配列を使いたいとき、例えば
if( 配列[ ]=={1,2,3,4} )
みたいにやるにはどうするのが一番簡単ですかね
配列[0]==1&&……で一個ずつ作るしかないですか

860デフォルトの名無しさん (ワッチョイ 2b81-rIoR)2018/12/08(土) 16:42:23.72ID:BPUiFCQU0

861デフォルトの名無しさん (スフッ Sdb3-2OAS)2018/12/08(土) 16:59:12.00ID:w7bOiw+rd

862デフォルトの名無しさん (ワッチョイ 4b9f-fJDm)2018/12/08(土) 17:04:10.21ID:fWle4nJW0
左辺も右辺も同じ長さの配列であればfor文を使うと書く量を減らすことができる気はする

863デフォルトの名無しさん (ワッチョイ 5b99-OBga)2018/12/08(土) 18:13:48.89ID:CGiGObuC0
半角さんはこっちでも馬鹿を晒してるんだ。。
次世代言語スレで論破されてもまだみっともなくないんだね。

864デフォルトの名無しさん (スフッ Sdb3-Pwcg)2018/12/08(土) 18:29:25.68ID:x4cazcr0d
俺はできるだけなんでもリフレクションでやるようにしてるよ

865デフォルトの名無しさん (ワッチョイ e19a-pji+)2018/12/08(土) 18:42:24.05ID:bRz/x0PH0
半角カナの人はあっちこっちで喧嘩売っている話の通じない人だから相手にしないでくれ
あとここ質問スレだから質問以外の話は相談室なり他で頼むよ

866デフォルトの名無しさん (ワッチョイ 01d2-WxAZ)2018/12/08(土) 18:56:28.19ID:xIFIrW3s0
if( 配列.Where( a => (new int[] { 1,2,3,4 }).IndexOf( a ) > 0 ).FirstOrDefault() != null )
とかボソッと言ってみる。真に受けないでね。

867デフォルトの名無しさん (ワッチョイ 2b80-ZtDu)2018/12/08(土) 21:20:12.98ID:tBodI9MC0
オレはケンカなんか売ってない
バカが真人間になるように矯正してるだけだからな

バカはオレにケンカ売ってるつもりらしいな

868デフォルトの名無しさん (ワッチョイ 2b9a-e5Zh)2018/12/08(土) 21:48:06.02ID:3kcswmur0
>>859
「一番簡単」が何を求めているのかわからないが、比較するものの数が決まっているのなら「配列[0]==1&&……で一個ずつ作る」のが「速くなる」
汎用にしたいのならラムダもlinqも俺自身が使えないのでメソッドにすると例えば
private bool hikaku(int[] arr1, int[] arr2)
{
if (arr1.Length != arr2.Length) return false;//配列の長さのCheck
int i = 0;
for (; i < arr1.Length; i++) if (arr1[i] != arr2[i]) break;
return i == arr1.Length;//全部一致したら最後まで止まらない
}
メソッドを呼び出すのはそれだけで速度的にだいたいロスになるので「速い」動作を求めるのならこれも勧めない
linq使うのが一般的だと思うけどそれは他の人に聞いてw

869デフォルトの名無しさん (ワッチョイ 93d2-2OAS)2018/12/08(土) 22:16:08.56ID:D0J+wHRo0
>>868
>>861やろ

870デフォルトの名無しさん (アウアウエー Sa23-M/db)2018/12/08(土) 22:32:50.81ID:uQ6Iu0Wba
まあ、>>861で済んでるとは思うんだけど、あえて付け加えるならこう?
public static bool Equals<T>(this T[] x, params T[] y) where T:IEquatable<T>
{
  return x.SequenceEqual(y);
}

今は(というか10年前からだけど)new[]{...}が使えるからparamsは有難みが薄いかもしれない

871デフォルトの名無しさん (ワッチョイ 139b-rUSZ)2018/12/09(日) 01:48:43.58ID:XoVxwZDP0
vbで言う、戻り値もらう時Function 〇〇の〇〇の部分って変数はそのまま使えない?
あとcallはないみたいだけど、人が書いたコード読む際にこれはなんか値取ってきてるなとか何か計算しにいってるなとか一目で分かるには慣れるしかないですかね?

872デフォルトの名無しさん (ワッチョイ 01d2-WxAZ)2018/12/09(日) 02:03:01.52ID:bhezjmzk0
〇〇 = 戻り値 は return 戻り値; じゃね。

Call は戻り値とかではなくて戻り値のない関数(Sub)を呼ぶときに引数の部分を () でくくりたい場合に使うものではなかったっけか。
戻り値を受け取るかは呼ぶ側で 変数 = 呼ぶ関数(); になってれば受け取るんだろうし、
呼ばれる側が戻り値を用意してるかどうかは呼ばれる側の関数の(戻り値の)定義が void になってれば返さないんだろうしってことじゃダメなん?

873デフォルトの名無しさん (ワッチョイ 7917-Po2/)2018/12/09(日) 09:10:07.58ID:k8VV6Zfs0
関数名で工夫してくれとしか言い様がない

874デフォルトの名無しさん (アウアウエー Sa23-PCBP)2018/12/09(日) 09:41:25.17ID:QJ+QHutHa
>>871
現代のVBではCallを明示的に書くのはMSが非推奨

875デフォルトの名無しさん (ワッチョイ 139d-r7dA)2018/12/09(日) 11:46:59.00ID:YUuZNzEz0
>>874
MSが公式にそう言ってるのか?ソースはどこ?

876デフォルトの名無しさん (アウアウエー Sa23-PCBP)2018/12/09(日) 11:50:28.80ID:QJ+QHutHa
>>875
https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/statements/call-statement
> You typically use the Call keyword when the called expression doesn’t start with an identifier.
> Use of the Call keyword for other uses isn’t recommended.

877デフォルトの名無しさん (ブーイモ MMb3-PCBP)2018/12/09(日) 11:55:54.72ID:ePHB7dYMM
意識高い系VBerさん達が梯子外されちゃって可哀想

878デフォルトの名無しさん (アウアウエー Sa23-M/db)2018/12/09(日) 12:17:17.42ID:qjppHIrra
VBでもCallなんて付けない方がいいと思うしそれが普通だと思うけど、
>>876の内容はCallキーワードの使用一般を非推奨とはしてないじゃんw

これが非推奨と言ってるのはたぶん、
Call Math.Min(1, 2)
みたいな使い方。これはCallはC系の言語でいう式になってない、つまり
Dim x = Call Math.Min(1, 2)
と書けないことも一因か?

あと、>>871
>vbで言う、戻り値もらう時Function 〇〇の〇〇の部分って変数はそのまま使えない?

これはどういう意味なの?
まったく分からん

879デフォルトの名無しさん (アウアウエー Sa23-M/db)2018/12/09(日) 12:31:52.14ID:qjppHIrra
C#でも自分のメンバー呼び出しにthis付けないと気が済まない人がいるけど、
あれはVBから来た人なのかねw

Call付けたい心理とたぶん同じだよな

880デフォルトの名無しさん (ワッチョイ 01d2-WxAZ)2018/12/09(日) 12:49:25.72ID:bhezjmzk0
こうしてまた場外乱闘が始まる。
なんでわざわざ煽るかね。

881デフォルトの名無しさん (ワッチョイ 492b-n9Ol)2018/12/09(日) 12:50:49.25ID:gZ+yGu4Z0
jsとかpythonとかphpとか

882デフォルトの名無しさん (アウアウエー Sa23-M/db)2018/12/09(日) 13:01:48.54ID:qjppHIrra
>>880
別に煽ってないし
this付けたがる人はそもそもそんなに多くないと思うから杞憂だよ

883デフォルトの名無しさん (ブーイモ MMb3-PCBP)2018/12/09(日) 13:02:30.07ID:G5eD25r9M
>>878
いや呼び出しが識別子で始まらない場合って書いてあるでしょ
サンプルコードにあるように、New Hoge.Method() とか、ラムダ式を即時呼び出しするケース
これは純粋に構文解析上の制限だろう

884デフォルトの名無しさん (アウアウエー Sa23-PCBP)2018/12/09(日) 13:13:46.66ID:QJ+QHutHa
BASIC系ではステートメントは原則的にステートメント種別を示すキーワードで始まらなければならず、式が単独でステートメントになることはできない
これは構文解析を楽にするための制限で、大昔の言語ではわりと一般的なスタイルだ
ただ、さすがにそれは不便だということで、識別子から始まる式については例外的に単独でステートメントになることができる
>>876のサンプルコードにあるようなケースでは四季がステートメントと見做されないから、例外的にCallが必須になるということだね

885デフォルトの名無しさん (アウアウエー Sa23-M/db)2018/12/09(日) 13:16:52.52ID:qjppHIrra
>>883
ああ、なるほどそうだねごめんw
MSDNの記事読んでなかったよw

VBは
(New TheClass()).ShowText()
と書けないのか。ダメな理屈がよくわからんなあ

ラムダ式の即時呼び出しは便利そうだね。
必要になった記憶はないし、戻り値を握りつぶすんじゃ相談室の方の661の
質問みたいなことはできないが

886デフォルトの名無しさん (ワッチョイ 89a5-aoeu)2018/12/09(日) 13:48:52.09ID:TF/l/AmT0
文法の違いにケチつけても意味無いだろ
外国語覚えるつもりで勉強しろよ

887デフォルトの名無しさん (ワッチョイ d9e3-k/Y9)2018/12/09(日) 14:06:56.27ID:pDRfOAll0
言語の記述方式ばっかりこだわって大したもん作れなかったら笑う

888デフォルトの名無しさん (ワッチョイ 93d2-2OAS)2018/12/09(日) 14:11:59.27ID:BoegikOT0
>>885
MSDN? docsじゃなくて?

889デフォルトの名無しさん (ワッチョイ 5b93-Hr0L)2018/12/09(日) 14:54:32.29ID:3jtGHyYw0
>>878
vbではfncHogeの戻り値を設定するのに
return 1
fncHoge = 1
のどちらの書き方もできたねん
関数の中で、関数名を変数名として使えた

再帰処理なんか考えたら
パっと見紛らわしくて
可読性に問題あるけどね

890デフォルトの名無しさん (アウアウエー Sa23-M/db)2018/12/09(日) 16:17:23.00ID:MwzmlrtWa
>>889
あーVB6はそういやそうだったね
.NETになって以降のVBでもそうやって書けたんだ。知らんかった
https://msdn.microsoft.com/ja-jp/library/dd297703.aspx

>>871はこれを言ってたのか

891デフォルトの名無しさん (ワッチョイ 4b33-e/g/)2018/12/09(日) 17:30:37.98ID:iieryEV90
ちょっとすれ違いだけどVB出てきたのでちょっと質問
C#でMicrosoft VisualBasicを参照にしてInteraction.InputBoxを使って「キャンセル」が押された場合は
VBで言うEmptyが返るはずなんだけど(VBのfunctionで何も値を設定せずexit functionした場合はEmptyが返る)、
EmptyかどうかをC#で判定する方法ってありますか?

892デフォルトの名無しさん (ワッチョイ 4b33-e/g/)2018/12/09(日) 17:38:47.00ID:iieryEV90
VBScriptなんかだと
r = Inputbox("何か値を入れてね")
if IsEmpty(r) then MsgBox "キャンセル押したね?"
という風に空文字列と区別とできるのでそれをやりたいの

893デフォルトの名無しさん (ワッチョイ abeb-3M3s)2018/12/09(日) 17:42:09.39ID:vv5ogZC30
初心者用スレッドは学習者のためにあるべきだろう
進歩のないVBコピペプログラマーのためにコードを代わりに書いてあげる場所にはならないようにしようぜ

894デフォルトの名無しさん (アウアウエー Sa23-PCBP)2018/12/09(日) 17:47:39.30ID:QJ+QHutHa
>>891
デバッガで何が返ってるか見たらすぐ分かるでしょ

895デフォルトの名無しさん (ワッチョイ 2bfa-WxAZ)2018/12/09(日) 17:53:08.88ID:z3UBPXgg0
>>891
何も入力しないでOKでも、キャンセルでも空文字列だから判別できないね
キャンセル判定したかったら横着せずに自分でフォーム作れって事でしょ

896デフォルトの名無しさん (アウアウエー Sa23-M/db)2018/12/09(日) 18:58:05.28ID:MwzmlrtWa
>>892
たぶん分かってると思うけど、ドキュメント見る限り無理だね
そもそも今時モーダルなダイアログを表示してテキスト入力させるUIってどうなのよって気がする
単純なメッセージボックスでもイラッとくるよね

897デフォルトの名無しさん (ワッチョイ 01d2-WxAZ)2018/12/09(日) 19:01:49.57ID:bhezjmzk0
>>891
その Empty の型はなに?
たぶん string なんだろうけど、それなら IsNullOrEmpty() あたりかね。
895 の言うような問題もあるけれど、もとから Empty かどうかだけで判定してたなら上ので用が済むんじゃね。

898デフォルトの名無しさん (ワッチョイ f9c3-OBpN)2018/12/09(日) 19:10:45.90ID:iLUD8BLY0
nullが来ないなら==でstring.Emptyもしくは""と比較するだけで良い

899デフォルトの名無しさん (ワッチョイ 139d-A2ma)2018/12/09(日) 19:44:20.03ID:YUuZNzEz0
>>892
そもそも、今のVB.Netでもそれ出来ないから

900デフォルトの名無しさん (ワッチョイ 939f-n9Ol)2018/12/09(日) 19:47:41.34ID:IXOxvMb/0
>モーダルなダイアログを表示してテキスト入力させるUI
えっこれって今いけてない扱いなの?
今どきはどんな感じでやってるの

901デフォルトの名無しさん (ワッチョイ d9e3-k/Y9)2018/12/09(日) 20:09:11.31ID:pDRfOAll0
>>900
俺もモーダルがいい派

902デフォルトの名無しさん (アウアウエー Sa23-M/db)2018/12/09(日) 20:35:01.06ID:DSJaW4t2a
別に本当に必要ならモーダルでいいよ。

どうせ分かって言ってると思うけど、モーダルなダイアログはユーザーの自由を奪って
特定の操作の完了を強制するUIだから、可能なら避けるべきなのは当たり前だし、
昔から嫌われ者だよね

そして、どうしてもモーダルなダイアログでテキストの入力を強制する必要があるケースなんか
あんまりないと思う。他にいくらでも代替手段があるでしょ

903デフォルトの名無しさん (ワッチョイ d9e3-k/Y9)2018/12/09(日) 20:39:11.66ID:pDRfOAll0
>>902
俺は逆
どうせ特定の手順でしか設定できない・しないのに無駄な自由度を付けて
バグを盛り込んでいるアプリが多い
完成度が低い

904デフォルトの名無しさん (ワッチョイ 939f-n9Ol)2018/12/09(日) 20:50:02.42ID:IXOxvMb/0
>>902
なるほど
でも業務システム作ってる身からすると>>903の意見に賛成

905デフォルトの名無しさん (ブーイモ MMab-016C)2018/12/09(日) 21:16:47.75ID:pBWk36nsM
>>904
そだね〜

906デフォルトの名無しさん (ワッチョイ 139d-A2ma)2018/12/09(日) 21:26:29.57ID:YUuZNzEz0
>>902-903
システムモーダルなら問題あるけど、アプリケーションモーダルなら好きにすればいい

907デフォルトの名無しさん (ワッチョイ 93d2-2OAS)2018/12/09(日) 21:57:23.95ID:BoegikOT0
>>906
これ

908デフォルトの名無しさん (ワッチョイ e18a-nOOm)2018/12/09(日) 22:21:24.37ID:+4l8dAVu0
うちの場合、モーダルではなく、入力されて問題ない時だけ入力出来るようにしてるわ。
ボタンも、押すと問題があるor意味がない時は無効化。
オペレーターの入れ替わり多い業界相手に売ってるから迷わせたらサポートが死ぬ。

909デフォルトの名無しさん (ワッチョイ f9c3-OBpN)2018/12/09(日) 22:21:51.64ID:iLUD8BLY0
アプリケーションモーダルでもメインウィンドウの移動が出来なくなるのは嫌い

910デフォルトの名無しさん (アウアウエー Sa23-M/db)2018/12/09(日) 22:34:38.83ID:DSJaW4t2a
IEではお気に入りに追加はモーダルなダイアログだったけど、
EdgeではChromeやFireFoxを真似てモードレスになってるよね。

まあ、さすがにモーダルの方が好みとか、作る方の都合を言ってるんじゃなきゃ
ネタで言ってるんだと思うが...

911デフォルトの名無しさん (ワッチョイ 4b33-e/g/)2018/12/09(日) 23:03:22.33ID:iieryEV90
デバッガで追ってみましたがどうもだめっぽいのであきらめます
ありがとうございました

912デフォルトの名無しさん (ワッチョイ 93d2-dPO+)2018/12/10(月) 07:30:25.23ID:ouPt/Ido0
まさかクソセンスのないおまえらがUIを語るとは思わんかったw
大体ユーザーが喜ぶんわおまえらが良いと思う逆やからね
これ覚えとった方がええでw

913デフォルトの名無しさん (ブーイモ MMb5-9Ktm)2018/12/10(月) 07:53:13.93ID:m/IRk2haM
おっそうだな

914デフォルトの名無しさん (ワッチョイ d9e3-Po2/)2018/12/10(月) 16:42:10.34ID:Z8Q8rcnc0
>>879
thisつけたいのはIntelliSenseで楽するためじゃない?

915デフォルトの名無しさん (ワッチョイ d9e3-k/Y9)2018/12/10(月) 19:57:30.23ID:mIPzNYaj0
>>912
逆?違うよ
ユーザーが喜ぶのは
カッコイイとは無縁の
Excelだよ
設定はExcelファイルから
帳票はExcelファイルで出力
これさえ押さえておけばオールオッケー

916デフォルトの名無しさん (ワッチョイ d906-n9Ol)2018/12/10(月) 22:56:37.46ID:e05pNJ/D0
モーダルダイアログの欠点は、マルチウインド故に偶に起こる事故でモーダルなのにウインドウがメインの裏に回っちまって操作不能になる
それが改良されたUWPのContentDialogは良いね
何しろメインウインドウ上に描画されているだけだから上記の事故が発生しない

wpfのmaterial design xaml toolkitでも似たようなことが出来るな

917デフォルトの名無しさん (ワッチョイ 2b9a-e5Zh)2018/12/10(月) 23:00:17.02ID:gZkxIcRc0
>>916
TopMost=trueにしとけば済む

918デフォルトの名無しさん (ワッチョイ d9e3-k/Y9)2018/12/10(月) 23:33:16.90ID:mIPzNYaj0
そうなってもタスクバーからのサムネイルで消せるけど
工場のおっさん、電話かけてくるからな

919デフォルトの名無しさん (アウアウウー Sa05-Od6P)2018/12/11(火) 07:50:38.93ID:Oc9mBFvNa
>>916
つ親指定

920デフォルトの名無しさん (アウアウエー Sa23-M/db)2018/12/11(火) 17:14:17.41ID:znnejAaHa
>>919
そもそも>>916が言ってるような挙動は本当であればバグ。
内部の実装としては、親を指定しないバージョンが呼ばれた場合は
恐らくアクティブウィンドウを親にしてるはずで、そうであれば解決策にはならんだろうね

もっとも、こんな挙動は確かにWin9x時代は何度か体験した記憶があるけど、
Win2k以降は個人的には記憶がないなあ

921デフォルトの名無しさん (ワッチョイ 4b33-e/g/)2018/12/11(火) 20:53:01.04ID:TeCHIZzA0
>>916
それってweb画面では当たり前で昔からあるしIEベースのHTAでもできる
UWP発祥とかじゃないよ

922デフォルトの名無しさん (アウアウウー Sa05-Od6P)2018/12/12(水) 07:55:33.61ID:PgOiCvwKa
>>920
GetParentをcallすれば分かる

923デフォルトの名無しさん (ワッチョイ 4156-xqdQ)2018/12/12(水) 15:25:10.30ID:gpIihp8I0
たまに暴走状態になって強制終了するしかなくなるのですが、
単純なエラーではなく暴走なのでどこのプログラムミスで暴走しているのかわかりません。
対処方法ってありますか?

924デフォルトの名無しさん (スッップ Sdb3-2OAS)2018/12/12(水) 15:25:44.89ID:VUTtNEedd
>>923
暴走状態とは?

925デフォルトの名無しさん (ワッチョイ 4156-xqdQ)2018/12/12(水) 15:30:47.96ID:gpIihp8I0
こういうやつです。
マウスポインターで待ち状態のカーソルが出て半透明になり、その後↓の警告が出てくるような状態です。
ふらっと C#,C♯,C#(初心者用) Part140 	YouTube動画>2本 ->画像>15枚

926デフォルトの名無しさん (ワッチョイ 4156-xqdQ)2018/12/12(水) 15:41:22.57ID:gpIihp8I0
簡単に再現すると、これを実行したような状態です。
bool test = false;
while (test == false) { };
しばらくすると半透明になって、右上の×しか押せなくなり、押すと↓のような警告が出て終了するしかなくなると思います。
ふらっと C#,C♯,C#(初心者用) Part140 	YouTube動画>2本 ->画像>15枚

927デフォルトの名無しさん (ワッチョイ 4b23-VgPf)2018/12/12(水) 15:49:07.30ID:Gas9nc7W0
単にメインスレッドで重い処理やってるだけのような気もしないでもないけども
とりあえずCPUに余裕があるならVS起動してプロセスにアタッチして全て中断してみる

928デフォルトの名無しさん (アウアウエー Sa23-M/db)2018/12/12(水) 18:46:12.29ID:9xK1qYaAa
盗んだバイクで

>>926
デバッグ実行してその問題が起こった時に、にIDEのツールバーの一時停止のピクトグラムのボタン
(ツールチップの表示は「すべて中断」)を押せばビジーループになってる箇所が分かるんじゃない?

929デフォルトの名無しさん (ワッチョイ 2b9a-e5Zh)2018/12/12(水) 20:23:04.54ID:kvTCOjS80
>>926
VS2017ならデバッグのパフォーマンスプロファイラーで監視したらデバッグ停止した後にCPU負荷の一覧をメソッドごと(関数名)に作ってくれるよ
だいたいどこかのループで嵌っているんだろうから自分で書いているのなら当たりつけてブレークポイント入れていけばわかると思うけど

930デフォルトの名無しさん (ワイーワ2 FF42-yWnt)2018/12/13(木) 12:15:25.84ID:zFPTCGevF
coroutine化汁

931デフォルトの名無しさん (ワッチョイ 1e81-ejmu)2018/12/13(木) 23:49:25.37ID:usWLAkyh0
見た目とコードを分離するために、WPFとかではMVVM pattern使えとか
書かれていることあるけど、企業向けの業務アプリでは
コードビハインドにはほとんど書かずにMVVMでかく割合はどれくらいなの?

コードビハインドほとんど使わなかったらコードが冗長になって
マイナス面のが多そうに感じる。

932デフォルトの名無しさん (アウアウエー Sa82-MGZ2)2018/12/14(金) 00:16:03.93ID:lOfJT1COa
その前にWPFを採用する割合がほぼゼロ
.NETの業務アプリなら今はほとんどがASP.NETで一部WinFormsが残ってるくらいだよ

933デフォルトの名無しさん (ワッチョイ 3b8a-Z14q)2018/12/14(金) 02:47:17.47ID:55WBGJfT0
うちは専用端末向けの業務システム売ってるけど、WPFでなくWinForms使ってる。
ハードウェアとASPサービスのセットが前提の売り物だけど。

934デフォルトの名無しさん (ワッチョイ 1e81-ejmu)2018/12/14(金) 03:27:54.19ID:GJ/DAGX40
>>932-933
クロスプラットフォーム対応のためにWeb appというのはかなり前
からあるのは知ってるけど、ほとんどというほどASP.netになってるの?
あとASPはclassic ASP.netではなくASP.net MVC?

Web appのデメリットとしては
ブラウザだとUIがしょぼくて操作性が落ちる
見た目も悪い
UIまわりの開発の時間とコストが増える
ブラウザバージョンアップで動かなくなる
パフォーマンスも落ちる
とかデメリットが多すぎるし全部ブラウザだけでなんとかするのは少数派だと思ってた。

935デフォルトの名無しさん (ワッチョイ 1e81-ejmu)2018/12/14(金) 03:43:58.72ID:GJ/DAGX40
>>932-933
web appとの比較は別にして、WinFormsとWPFの選択肢で
新規でWinFormsを選ぶ意味ってまったくないんじゃないの

ただWPFわかる人がいなくてWinFormsでやっちゃったというかんじかな
WinFormsはWPFに比べて表現力が劣るからUIまわりで後から細かい注文
ついたときに困ったことになるんじゃない

UWPが微妙だから、desktop appはWPFの一択になってると思ってたわ
今ならWPFよりもXamarin使ってクロスプラットフォームとリッチアプリの
いいところどりがいいのかな
コカ・コーラとかSMBCがXamarin使ってるらしいけどMonoバグだらけ時代を
知っているとXamarin使うのも怖い

936デフォルトの名無しさん (ワッチョイ 1e81-76+Y)2018/12/14(金) 06:22:30.47ID:2oR8X5p/0
分かる人がいないって超リスク要因なんだけどスルーなんすね

仕事したことあんのか

937デフォルトの名無しさん (ワンミングク MMfa-L3Bz)2018/12/14(金) 06:37:15.38ID:Pyvt1iyXM
WPF分からずに使ってるならリスク保有
WPF分からないから使わないならリスク回避

938デフォルトの名無しさん (ドコグロ MMc2-7LdQ)2018/12/14(金) 07:06:46.41ID:Ril/QPHWM
工場のおっさんにそんなもんいらん

939デフォルトの名無しさん (アウアウエー Sa82-MGZ2)2018/12/14(金) 07:48:40.74ID:lOfJT1COa
仕事したことないんだろうけど、業務アプリでは特にどうしても止むを得ない理由がない限りはWebアプリを選ぶんだよ
イケイケのWebベンチャーでなくても、毎日のようにリリースされるシステムって普通にあるんやで

940デフォルトの名無しさん (スププ Sdaa-sY6B)2018/12/14(金) 08:08:29.06ID:tIMQiboGd
俺が前にいた会社はWPFバリバリ使ってたよ。 
Blendも使ってた。
デザインセンターとやりとりするのにBlend確かに便利だったし。
WinFormsはほとんど使ってなかったな。

941デフォルトの名無しさん (ワッチョイ 1e81-ejmu)2018/12/14(金) 08:15:12.24ID:GJ/DAGX40
>>936-937
あおるつもりじゃなくて真剣に思うけど
開発やってる会社がWPFすら知らないってのは会社としてレベルが低すぎじゃないか
WPFでたのが2006年
12年経ってもWPFわかる人いないくて新規でWinFormsで開発ってかなりやばい
C#ならクライアントの要望に応じてWPF, UWP, Xamarinと提案できるのが
まともな会社だろう。

MVCへの反応なかったところみても、ASPも古臭いclassic ASP使ってるんだろうな
ORMも使わずSQLゴリゴリ書いてそう

>>938
PCの初心者ほどわかりやすく使いやすいUIが必要
Webアプリって最低レベルのUX, UIだ

942デフォルトの名無しさん (ワッチョイ 1e81-ejmu)2018/12/14(金) 08:27:22.66ID:GJ/DAGX40
Web appが使いづらいからこそ多くの企業がsmartphone appをリリースしている
一般の個人ユーザーでさえWeb appを嫌っているという証拠だ
業務で長時間使うアプリがブラウザベースっていうのは普通にゴミでしょ

>>939
本当はユーザーに選ばせたのではなく、classic ASPしかできないから
ほかも提案せずにclassic ASPで開発したんだろう。

ユーザーはやむを得ない理由がない限りブラウザみたいな使いづらいのを選ばない。
Xamarinとか使えばクロスプラットフォーム対応もできるわけで
Web appを使わなければならないケースもほぼないだろう。
不特定多数に使わせるシステムならブラウザでも仕方ないが社内利用だからな

943デフォルトの名無しさん (スププ Sdaa-sY6B)2018/12/14(金) 08:35:34.97ID:tIMQiboGd
今の業務系ってWebの方が多くない?
長時間使うものでも。
セットアップが必要だと割と嫌われる気がする。
環境変えるのは割と稟議要るし。
うちどうしてもクラサバにするアプリは未だにClickOnce使ってる。

944デフォルトの名無しさん (スップ Sd4a-5HC6)2018/12/14(金) 08:39:24.37ID:Tj2eBqcgd
業務系っつってもいろいろあるしな
インストールとかのこと考えたらwebで済むならwebでやったほうが導入コスト抑えられることもあるし
案件次第かと

945デフォルトの名無しさん (スププ Sdaa-sY6B)2018/12/14(金) 08:40:29.88ID:tIMQiboGd
考えるに、Web系にしたいのは、タブレット対応を出来るだけ楽にやりたいって方が大きいんじゃないかな。
iPadアプリなんかは大量に作るわけにもいかんし。エンタープライズでも個数は決まってるから。

ASPならある程度は楽だよ。
UI部分はJSフレームワークと内製コントロール使ってるけど、今までのフォームベタ書きより遥かに楽。
そういえば今Office365だってReactだね。

946デフォルトの名無しさん (スププ Sdaa-sY6B)2018/12/14(金) 08:42:11.70ID:tIMQiboGd
認証もSSOかけたいしね。アプリ毎にログイン画面出したり、ログイン用dll蹴るとかすると、クロスは意外に苦労する。

947デフォルトの名無しさん (ブーイモ MM6f-MGZ2)2018/12/14(金) 08:55:57.55ID:uOUb+NbhM
使いづらいとか関係ないんだよ
工場が使いづらいからって従業員がその工場を使わないなんてあり得ないだろ?
ID:GJ/DAGX40が想像してるのはその工場の中で使われる工作機械(Excelみたいなツール的なアプリ)の開発だろうけど、
実際のシステム開発では工場を作る仕事の方がずっと多いの

948デフォルトの名無しさん (ブーイモ MM6f-MGZ2)2018/12/14(金) 09:08:26.15ID:uOUb+NbhM
学生だと思うけど、仕事でバリバリ使える新しい技術を習得したいならUI技術なんかどうでもいいからAWSを学ぶことを強くお勧めする
伸び続ける需要に対してまともなクラウド技術者(AWSから単なるホスティングサービス以上の価値を引き出せる人)はSI業界では全然足りてなくて、
一通りのプログラミングスキルを備えた上で手を出すなら技術スキルとしては最強よ

949デフォルトの名無しさん (ワッチョイ 1e81-ejmu)2018/12/14(金) 09:54:48.70ID:GJ/DAGX40
業務系で漠然としすぎてるなら、基幹業務アプリと仮定する

>>943-944
Deploymentが心配ならgroup policyで一括でいれちゃえばいいでしょ
ClickOnceよりさらに楽になる

>>944
Deployはすぐ終わるけど、
ブラウザベースにすると社員の生産性が落ちてずっと損失が続くよ

950デフォルトの名無しさん (ワッチョイ 1e81-ejmu)2018/12/14(金) 10:07:13.08ID:GJ/DAGX40
>>947
使いづらいとか関係ないと言っちゃう人は開発者に向いてないんじゃないの
自分はフリーウェア作る時でもどうやったら他人が使いやすくなるかじっくり考えるよ

Excel?工場?
社会人だしASP.net MVCでサイト開発もやってるしDB側も自分でスキーマから作ってる。
受託開発のような立場ではない開発者

951デフォルトの名無しさん (ワッチョイ ebb3-rSJK)2018/12/14(金) 11:20:55.70ID:T5iMn8UB0
まあ普通はWinformsでできることにWPF使わないよね
情報もミドルウェアも豊富だし完全に枯れてるし開発者も簡単に見つかるし
グラボのドライバのトラブルをモロに受けたりしないし

Winformsでは実装が大変なリッチなUIを実現したい場合に初めて検討するんでええと思うわ

952デフォルトの名無しさん (ワッチョイ 4676-/nUu)2018/12/14(金) 11:23:58.59ID:lkWiVuQs0
今ならWinFormかUWPの2択だな
WPFはない

953デフォルトの名無しさん (アウアウエー Sa82-KEhP)2018/12/14(金) 11:29:39.83ID:pFvZXuP0a
UWPはもっとないと思うw

954デフォルトの名無しさん (ワッチョイ ebb3-rSJK)2018/12/14(金) 11:40:43.63ID:T5iMn8UB0
>>952
UWPは風前の灯やぞ

955デフォルトの名無しさん (アウアウエー Sa82-KEhP)2018/12/14(金) 11:42:15.94ID:pFvZXuP0a
C#とたぶん関係ないけど、病院の待合室とか、科学館みたいなところで
いろんな情報をアニメーション付きで表示するサイーネージって今は何を使って開発してるの?
ああいうの大半はWindows PCだと思うけど

まさかFlashじゃないよね

956デフォルトの名無しさん (ワッチョイ ebb3-rSJK)2018/12/14(金) 11:43:35.88ID:T5iMn8UB0
>>955
何で作ってんのかは知らんけどああいうのがWPFを使うべき案件

957デフォルトの名無しさん (ワッチョイ 1ae9-5HC6)2018/12/14(金) 12:05:29.63ID:dJlHzP7u0
なんでwebアプリだったら生産性が落ちるんだw
そんなんケースバイケースじゃん
広い世の中いろんな案件、全部一緒くたにしてよく語れるなw

958デフォルトの名無しさん (オッペケ Sra3-lMXg)2018/12/14(金) 12:30:35.29ID:ccHhRNR2r
Webアプリってことはサーバー用意しないといけないじゃん

WinFormでForm全体にGeckoブラウザ表示してhtmlとcssでUIつくればよくね?

959デフォルトの名無しさん (ワッチョイ faeb-3flP)2018/12/14(金) 13:00:30.21ID:LzA8nB0t0
そうしてみんなelectronにたどり着く
c#を捨ててtypescriptへ

960デフォルトの名無しさん (ワントンキン MMfa-k5TM)2018/12/14(金) 13:37:59.34ID:i6VXwEfYM
erectionに空目した

961デフォルトの名無しさん (ササクッテロル Spa3-YXIk)2018/12/14(金) 14:06:57.13ID:EGTqJp4wp
Winform推してる人ってマジなのか?
デスクトップアプリ作るならWPFかUWPのどっちかだろう
いまだにWindows7の会社もあるんだからWPFしか使えないところもある

Winformの利点はvbでポトペタで誰でも出来るから作る人すぐ見つかるぐらいだと思うが

962デフォルトの名無しさん (ワッチョイ faeb-3flP)2018/12/14(金) 14:27:13.84ID:LzA8nB0t0
WinFormはlinuxでも動くからな

963デフォルトの名無しさん (スププ Sdaa-sY6B)2018/12/14(金) 14:49:36.05ID:tIMQiboGd
>>949
だいたいそういうものは特定の部署の人だけが使うものだから、そんなに細かくグループポリシー切ってないし、
グループポリシー変えるってのはそれこそ環境変えることだから、超慎重論者が出てくるよ。

964デフォルトの名無しさん (スププ Sdaa-sY6B)2018/12/14(金) 14:52:35.74ID:tIMQiboGd
>>955
サイネージはFlashあるよw
モダンな所だとHTML5だろうけど。
Animateで作れる範囲が多いんじゃないかな。
待合の番号表示はまさにWPFでやってるのを知ってる。

965デフォルトの名無しさん (ワッチョイ eac3-+KUv)2018/12/14(金) 15:21:21.44ID:kZ6ZIZH+0
とはいっても、winformとWPFはオープンソース化されるわけで

966デフォルトの名無しさん (ブーイモ MM47-MGZ2)2018/12/14(金) 17:17:59.74ID:VNQD+NFIM
>>958
業務アプリならどっちみちサーバーは必要
Webならクラウドでハード持たずに解決することもできる

967デフォルトの名無しさん (スプッッ Sd4a-g8EJ)2018/12/14(金) 18:56:43.52ID:6Ms+lAwHd
>>943
ClickOnceの証明書どうしてる?

968デフォルトの名無しさん (アウアウウー Sa4f-nx0W)2018/12/14(金) 20:34:27.98ID:yUc1T11Ea
WinFormsいいよ、低レベルだから開発要員も集めやすいし

969デフォルトの名無しさん (ワッチョイ 23c9-UKyl)2018/12/14(金) 20:40:59.53ID:bPiqsy2d0
WPFはWinFormを脳死で移行出来る仕掛けを作らなかったのが敗因

970デフォルトの名無しさん (オッペケ Sra3-lMXg)2018/12/14(金) 20:54:36.99ID:ccHhRNR2r
結局まともなUIフレームワークがないのかあ
やはりWinFormにGeckoかクロウニウム表示して裏はc#ってのがいいんじゃねーの

971デフォルトの名無しさん (ワントンキン MMfa-L3Bz)2018/12/14(金) 21:08:51.43ID:xK9LChruM
今の時代はWinFormsが低レベルなんだよなぁ、と感慨にふける

972デフォルトの名無しさん (ワッチョイ 0e33-U1IU)2018/12/14(金) 21:15:19.16ID:xmsOh7Vk0
winformsでも単色ベースでちょっと半透明でも混ぜとけば今風になるじゃろ?
xmlから動的生成もやろうと思えばできるし

973デフォルトの名無しさん (スフッ Sdaa-/nUu)2018/12/14(金) 22:26:59.49ID:U+Tbp34pd
WinFormでもちょっと凝った効果出したかったらOnPaintオーバーライドしてどうとでも描画できるからまったく問題ない

974デフォルトの名無しさん (ワッチョイ 0ae3-7LdQ)2018/12/14(金) 22:56:50.37ID:9pcN/dVr0
OSに合わせてフラットデザインにしてよ

975デフォルトの名無しさん (ワッチョイ 1e81-ejmu)2018/12/14(金) 23:01:36.40ID:GJ/DAGX40
WPFはサードパーティーのコントロールとかかわなくてもきれいなUIつくれる。
UIだけでなくDatabindingもWPFのが出来がいい

否定してる人は勉強してなくてWPFほとんど使ったことない人だろうな

976デフォルトの名無しさん (ワッチョイ 1e81-ejmu)2018/12/14(金) 23:08:33.13ID:GJ/DAGX40
>>963
中堅以上の企業ならdesktop PCの管理ツールいれてるでしょ
グループポリシーじゃなくても管理ツールで一括でdeployはできる

web appの場合はブラウザのバージョンをそろえる必要があるし
web appのが楽とも言い切れない

977デフォルトの名無しさん (スププ Sdaa-sY6B)2018/12/14(金) 23:36:18.74ID:2263YZDvd
>>967
ちゃんと買ってるのもあれば、そうでないものあるって感じかな。
一応ルート証明書としてポリシーで撒いてるものはあるけど、必ずしも全てのプロジェクトでそれが使える訳ではない。

978デフォルトの名無しさん (スププ Sdaa-sY6B)2018/12/14(金) 23:41:16.45ID:2263YZDvd
>>976
インストールって行為がいかんのだと。
こちらが入れるあちらが入れるの問題ではない。
あんまり資産管理アプリの存在を気取られる訳にもいかんしな。

ブラウザのバージョンはもっと話が単純で、完全固定だよ。IEだけど。
Windows Updateも検証してから撒いてる。

979デフォルトの名無しさん (アウアウエー Sa82-KEhP)2018/12/15(土) 00:14:27.07ID:eiocXHQpa
>>975
そんなことないよw
もうだいぶ忘れちゃったけど、Win8が出た時にストアアプリと一緒にWPFも勉強した。

その上でやっぱりWPFは問題あると思う。
WPFの利点は認めるし、XAMLを導入した問題意識もよく分かる。

Windows Formって基本的に30年前のUIだから表現力に問題があるのはしょうがないとしても、
実用的なUI作るとFormのコードが肥大化してメンテしづらくなる。

だからバインディングその他を使ってイベントハンドラを追放しよう、って発想はよくわかるけど、
これでコードが減って可読性が上がってメンテしやすくなったかと言うと...個人的には大疑問。

むしろFormより悪くなっちゃってるとしか思えない。
WPFが普及しなかったのか結局そこだと思う。

前も書いたけど、WPFは作ってる時はいいけど、後で見た時に必ずしも可読的じゃない。

980デフォルトの名無しさん (アウアウエー Sa82-MGZ2)2018/12/15(土) 01:51:33.86ID:mgmsvi+Ca
全くもって違うよそれは
WPFではUIの自由度が上がることで制御すべき状態の数が激増するから、
それが極力開発者の負担にならないようにするためにバインディングが強化されたんだよ。
WPFの本来の思想でいえば、普通にコードビハインド書きまくって従来のコンポーネント指向で作るのが正しい使い方。

981デフォルトの名無しさん (ワッチョイ 868a-UKyl)2018/12/15(土) 02:39:09.34ID:LeOuIFUL0
WPF一択

UIを大幅リニューアルするとき、xamlだけの修正でVMは弄らずにすんだから
きちんと分離しといてよかったなと思う。

あと最近増えてきた高解像度ディスプレイで文字を拡大表示するPC(Surfaceとか)で、
プログラム側の対応無しに自動的にサイズ調整してくれるのも助かってる。

WinFormで高DPI対応とか地味なうえにめんどくさくてやる気出んわ

982デフォルトの名無しさん (ワッチョイ 0ad2-g8EJ)2018/12/15(土) 06:03:04.70ID:jbLsS7fN0
>>976
.NET Frameworkのバージョン揃える方がきつい

983デフォルトの名無しさん (ワッチョイ ebf2-L3Bz)2018/12/15(土) 08:32:34.22ID:Kj42lvXa0
すでに(初心者用)を見失ってるな

984デフォルトの名無しさん (スププ Sdaa-sY6B)2018/12/15(土) 09:11:51.00ID:PMHZuoPdd
あと、Blend使っておくとデザイナーさんがデザインガイドライン通りに直してくれるプロジェクトだったから、WPFはありがたかったな。

985デフォルトの名無しさん (ワッチョイ ebb3-rSJK)2018/12/15(土) 09:30:10.49ID:HhhdbPQI0
Delphiのバインディング知ってるとWPFのそれはあまりに複雑

986デフォルトの名無しさん (ワッチョイ 0ae3-7LdQ)2018/12/15(土) 10:07:39.43ID:88lSHx3P0
バインドつながらないときにどこが腐ってるのか調べる方法が蝨潰しだからクソ
やること決まってるんだからあるべき接続図をビジュアル化して出せ

さらにつながらない原因ってこっちのコントロールではこのやり方でできたけど
こっちのコントロールでは無理なんすよっていう開発者の程度の低いボケ
そら誰も使わん

987デフォルトの名無しさん (ワッチョイ 0ae3-7LdQ)2018/12/15(土) 10:14:03.99ID:88lSHx3P0
はっきり言うけど
OnDrawかOnPaintで値が好きにいじれる
mfcやwin32のが遥かに完成されてる

988デフォルトの名無しさん (ワッチョイ 139f-5Jpq)2018/12/15(土) 10:28:26.19ID:wll8PTaL0
>>986見てるとWPF嫌いなヤツは無能なんだなって思う
できるやつはWPFの恩恵受けられるから良く思えて無能はその逆ってことだな

989デフォルトの名無しさん (ワッチョイ 0ae3-7LdQ)2018/12/15(土) 10:32:40.12ID:88lSHx3P0
>>988
では、「素晴らしい」開発を一人でやりたまへ

990デフォルトの名無しさん (ワッチョイ 1e81-ejmu)2018/12/15(土) 10:44:09.11ID:Wu4Fx0bU0
次のスレッドがまだない

991デフォルトの名無しさん (ワッチョイ 1e81-ejmu)2018/12/15(土) 10:49:03.13ID:Wu4Fx0bU0
次たててきた

ふらっと C#,C♯,C#(初心者用) Part141
http://2chb.net/r/tech/1544838367/

992デフォルトの名無しさん (ワッチョイ 4f17-2dqZ)2018/12/15(土) 11:08:48.30ID:o4PwGoKi0
>>991は荒らしが建てたスレなので使わないでください

ふらっと C#,C♯,C#(初心者用) Part141
http://2chb.net/r/tech/1544839627/

993デフォルトの名無しさん (ワッチョイ 1e81-ejmu)2018/12/15(土) 11:51:45.05ID:Wu4Fx0bU0
>>992
重複たてる奴が荒らし

994デフォルトの名無しさん (ワッチョイ 13bb-gnc1)2018/12/15(土) 13:02:39.07ID:ciWGnj730
たりないあたまでがんばったのはすごい
ようちえんからやりなおして、たりないぶぶんをてにいれてきてね
ばいばい

995デフォルトの名無しさん (ワッチョイ 0fc3-vjmv)2018/12/15(土) 13:20:20.92ID:Xa6jDRNv0
>>987
ちょっと凝ったことをしようとすると
すぐそれに頼ることになるのが嫌なんだけど

996デフォルトの名無しさん (ワッチョイ ebb3-rSJK)2018/12/15(土) 13:38:19.29ID:HhhdbPQI0
>>987
無理

997デフォルトの名無しさん (ワッチョイ 1e81-ejmu)2018/12/15(土) 13:58:22.86ID:Wu4Fx0bU0
>>987
C, C++は生産性が低いからC#使ってるんでしょうに

>>981
WPFのが分離されたきれいなコード書きやすいのはおおきなメリットだろうね

998デフォルトの名無しさん (ワッチョイ 1e81-ejmu)2018/12/15(土) 14:04:42.98ID:Wu4Fx0bU0
>>979
イベントハンドラは便利だし普通にWPFでつかってる。
メソッド長くなり過ぎないようにしてれば、後でそこまで困ったことには
ならないと思っている。
データはEntity Framworkでやってコード短くしている

999デフォルトの名無しさん (ワッチョイ 1e81-ejmu)2018/12/15(土) 14:05:22.02ID:Wu4Fx0bU0


ふらっと C#,C♯,C#(初心者用) Part141
http://2chb.net/r/tech/1544838367/

1000デフォルトの名無しさん (ワッチョイ 1e81-ejmu)2018/12/15(土) 14:05:38.70ID:Wu4Fx0bU0
1000
荒らしたがたてた重複は無視で

-curl
lud20191217174910ca
このスレへの固定リンク: http://5chb.net/r/tech/1538646998/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「ふらっと C#,C♯,C#(初心者用) Part140 YouTube動画>2本 ->画像>15枚 」を見た人も見ています:
ふらっと C#,C♯,C#(初心者用) Part130
ふらっと C#,C♯,C#(初心者用) Part141
ふらっと C#,C♯,C#(初心者用) Part146
ふらっと C#,C♯,C#(初心者用) Part129
ふらっと C#,C♯,C#(初心者用) Part145
ふらっと C#,C♯,C#(初心者用) Part132
ふらっと C#,C♯,C#(初心者用) Part139
ふらっと C#,C♯,C#(初心者用) Part131
ふらっと C#,C♯,C#(初心者用) Part144
ふらっと C#,C♯,C#(初心者用) Part134
ふらっと C#,C♯,C#(初心者用) Part141
ふらっと C#,C♯,C#(初心者用) Part143
ふらっと C#,C♯,C#(初心者用) Part138
ふらっと C#,C♯,C#(初心者用) Part142
ふらっと C#,C♯,C#(初心者用) Part136
ふらっと C#,C♯,C#(初心者用) Part137
ふらっと C#,C♯,C#(初心者用) Part148
ふらっと C#,C♯,C#(初心者用) Part121
ふらっと C#,C♯,C#(初心者用) Part148
ふらっと C#,C♯,C#(初心者用) Part149
ふらっと C#,C♯,C#(初心者用) Part151
ふらっと C#,C♯,C#(初心者用) Part152
ふらっと C#,C♯,C#(初心者用) Part147
ふらっと C#,C♯,C#(初心者用) Part128
ふらっと C#,C♯,C#(初心者用) Part119
ふらっと C#,C♯,C#(初心者用) Part154
ふらっとC#,C♯,C#(初心者用) Part88
ふらっとC#,C♯,C#(初心者用) Part92
ふらっと Q#,Q♯,Q#(初心者用) Part 1
くだすれC++/CLI(初心者用)part2
★日本語と英語を併記して会話しよう(初心者用)★
Webサイト制作初心者用質問スレ part251
何か楽しい教本・曲集ないの?(初心者用)
ブラックなベンチャーについて語るスレ(初心者用)
【キンスレ】キングスレイド初心者用スレpart2【初心者】
Webサイト制作初心者用質問スレ part252
Webサイト制作初心者用質問スレ part253
【Esperanto】エスペラントの初心者用スレッド【国際補助語】 parto1
くだすれFORTRAN(超初心者用)その7
立憲民主党(政治初心者用)☆1
くだすれAjax(超初心者用)
Diablo2 超ドQ!初心者用スレ
くだすれC++Builder(超初心者用)その5
街コン行く人集まれ(初心者向け)Part4
街コン行く人集まれ(初心者向け)Part4
ふらっと C#,C♯,C#(議論用)
FX初心者スレ Part120
FX初心者スレ Part110
クロスバイク初心者質問スレ part10
セキュリティ初心者質問スレッド Part140
【TF2】Team Fortress 2 初心者スレ Part100
渓流のトラウトルアーフィッシングPart1(初心者書き込み厳禁)
還暦初心者の会 Part1
FX初心者スレ Part112
FX初心者スレ Part121
FX初心者スレ Part128
FX初心者スレ Part134
FX初心者スレ Part129
FX初心者スレ Part127
FX初心者スレ Part101
FX初心者スレ Part109
FX初心者スレ Part113
MTB初心者質問スレ part103
MTB初心者質問スレ part105
MTB初心者質問スレ part103
16:59:03 up 3 days, 3:23, 7 users, load average: 9.52, 9.83, 9.89

in 4.6644849777222 sec @4.6644849777222@0b7 on 121506