「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part139
https://mevius.5ch.net/test/read.cgi/tech/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
ふらっと C#,C♯,C#(初心者用) Part140
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ 9e9f-LwdJ)
2018/10/04(木) 18:56:38.41ID:JnxMNCXd02デフォルトの名無しさん (ワッチョイ e9c9-vBoO)
2018/10/04(木) 23:05:26.82ID:qWTjGweS0 ネットワークやバイナリファイル編集でバイト配列操作する機会多いんだけど、何を使うのが一般的なの?
StreamにしてBinaryReaderやBinaryWriterで読み書きしてたら、バイト配列は添字使って編集するのが速いし確実とかCみたいなプログラム書くおっさんPGに言われちゃった・・・
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
でその人の言うように配列のインデックス使ってやればいいと思うし
乙
>>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()で位置を動かせるけどあまり見ない気がする
同じく「確実」の意図が分からないからそれは置いておいて
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おじさんの方にある
C#の最新事情でいうと、Span<T>という安全なポインタのようなものが入ったり、
それに伴ってBinaryPrimitivesみたいな低レベルなユーティリティが充実したりして、
残念ながら時代はCおじさんの方にある
6デフォルトの名無しさん (アウアウエー Sa6a-u7Me)
2018/10/05(金) 00:13:17.22ID:H1SMXMnNa7デフォルトの名無しさん (ワントンキン MM1a-LjNM)
2018/10/05(金) 09:06:50.59ID:LGlJpP21M C#という事ではないのかもしれませんが相談させてください。
複数のPCで複数のアプリが稼働していて、これらの稼働状態をモニタリングしたいと考えています。
正常に動作しているか、今どういう状態か程度で、止まっていたりしたら知りたいです。
各アプリから状態をDBに都度登録してもらい、それを監視すればいいかとも思うのですが、
この方法だとアプリが正常に動作していない場合とかは、DBの更新が止まっているのを判断するしかありません。
このような案件の場合、よい方法、定番の方法ってあるでしょうか?
複数のPCで複数のアプリが稼働していて、これらの稼働状態をモニタリングしたいと考えています。
正常に動作しているか、今どういう状態か程度で、止まっていたりしたら知りたいです。
各アプリから状態をDBに都度登録してもらい、それを監視すればいいかとも思うのですが、
この方法だとアプリが正常に動作していない場合とかは、DBの更新が止まっているのを判断するしかありません。
このような案件の場合、よい方法、定番の方法ってあるでしょうか?
8デフォルトの名無しさん (ブーイモ MM5e-Ww/X)
2018/10/05(金) 09:09:25.87ID:9pDoP7+lM >>7
Xabbix
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には時間とともにそれを記録して、
確認側は最後の時間から一定時間過ぎても更新が無いことを確認するしかないと思うよ。
正常に動作していない、を判定するのは無理だよ。
正常に動作していなかったら、「正常に動作できてません」って発言すら信用できないっしょ。
素直にアプリ側にたとえ報告することがなくても、忙しくても何が何でも一定時間おきに「動作中」を送信させて、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にって印象は受けるなあ
まあ、何か事情はあるんでしょうが
そうでないなら何でわざわざDBにって印象は受けるなあ
まあ、何か事情はあるんでしょうが
14デフォルトの名無しさん (ワントンキン MM1a-LjNM)
2018/10/05(金) 19:55:03.19ID:LGlJpP21M15デフォルトの名無しさん (スプッッ Sd9e-RpCj)
2018/10/05(金) 20:17:35.38ID:N/cJ9waZd 一般的とか定番とかにこだわりすぎ
君のシステムにあったものを選択すればいい
すでにシステムとしてDBを利用してるなら、その横で正常動作を監視するのには何の違和感もない
君のシステムにあったものを選択すればいい
すでにシステムとしてDBを利用してるなら、その横で正常動作を監視するのには何の違和感もない
16デフォルトの名無しさん (アウアウエー Sa6a-u7Me)
2018/10/05(金) 20:29:12.88ID:A3z1jwkNa >>14
いや、監視役のPCの監視用のアプリが直接各PCのアプリに確認するとか、
逆に各PCのアプリが定期的に報告するとか、そっちの方が回りくどくないんじゃないかと思っただけ。
だから直接通信できないとか何か事情があるのかなと
いや、監視役のPCの監視用のアプリが直接各PCのアプリに確認するとか、
逆に各PCのアプリが定期的に報告するとか、そっちの方が回りくどくないんじゃないかと思っただけ。
だから直接通信できないとか何か事情があるのかなと
17デフォルトの名無しさん (ワッチョイ bc06-LjNM)
2018/10/05(金) 23:36:46.57ID:hL15zPdp0 >>16
なるほど、確かにそうですね。
ソケット通信みたいなプロセス間通信でって事でしょうか?
時間の関係で監視アプリはまだ未定で、取り敢えずネタを仕込む仕組みだけは考えておこうと言う思いでDBが浮かんだんでしょうか。
なるほど、確かにそうですね。
ソケット通信みたいなプロセス間通信でって事でしょうか?
時間の関係で監視アプリはまだ未定で、取り敢えずネタを仕込む仕組みだけは考えておこうと言う思いでDBが浮かんだんでしょうか。
18デフォルトの名無しさん (アウアウウー Sa08-Ww/X)
2018/10/06(土) 01:17:30.44ID:GDCWtS3pa それこそZabbixなどの監視スイートでいいだろ
サーバーとクライアントに出来合いのフリーソフト入れるだけで、このスレの連中が10年かけても作れない立派な監視システムの出来上がり
サーバーとクライアントに出来合いのフリーソフト入れるだけで、このスレの連中が10年かけても作れない立派な監視システムの出来上がり
19デフォルトの名無しさん (スプッッ Sd70-m1mm)
2018/10/06(土) 08:31:42.88ID:lJ9HnWTid デリゲートってのがよく分からんのですが、
C言語の型だけ並べた関数ポインタみたいなものですかね?
C言語の型だけ並べた関数ポインタみたいなものですかね?
20デフォルトの名無しさん (ワンミングク MM32-y1q8)
2018/10/06(土) 08:40:04.82ID:hgnllvmvM21デフォルトの名無しさん (ワッチョイ f8eb-RpCj)
2018/10/06(土) 22:12:33.62ID:5sHefPQo0 >>19
そのとーり
そのとーり
22デフォルトの名無しさん (ワッチョイ 2c43-DRaL)
2018/10/06(土) 22:12:35.20ID:b44kc6dy023デフォルトの名無しさん (ワッチョイ 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か
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に比べるとエンジニアの平均スキルが高く、案件の質が良い
国内だとJavaに比べるとエンジニアの平均スキルが高く、案件の質が良い
31デフォルトの名無しさん (ワッチョイ e2d2-pJhu)
2018/10/08(月) 02:16:46.72ID:fwPk56zX032デフォルトの名無しさん (ワッチョイ c4e3-BkfR)
2018/10/08(月) 02:19:34.16ID:dSuydhfr0 悪いことは言わん。
C#はやめとけ。C++の方がまし。
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の方がまし。
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に逃げるしかない。
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年は戦える。
プロパティも欲しいとこだが今さらこれは望み薄だろう。
後は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>のみをサポートするようになるだろう
低レベルなタスクに関わる一部の人だけが知っていればいいと思われがちだが、実は決してそうではない
最新の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サービスのプロトタイピングにはイイかなーと思うけど大規模にも耐えうるのかな
小規模のWebサービスのプロトタイピングにはイイかなーと思うけど大規模にも耐えうるのかな
44デフォルトの名無しさん (ブーイモ MM5e-Ww/X)
2018/10/08(月) 14:44:04.44ID:QmlHMP6PM EFはモデルの一貫性を強力に維持しながら継続的にモデルに手を入れていくような開発スタイルに適してる
巨大な単一のデータモデルを維持するようにはできてない
大規模開発で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:Py80K8TM048デフォルトの名無しさん (オッペケ Sr10-2wNQ)
2018/10/08(月) 18:28:47.30ID:b2Tw+UtCr49デフォルトの名無しさん (アウアウエー 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:kgyl4Ui4052デフォルトの名無しさん (ワッチョイ 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#でそこまで精度でるか知らんけどな
例えば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とかタイムアウト設定できなくてクソ過ぎて死んだけど
ケースバイケースだよね
どういう方式っつかタイムアウトで全ての辻褄を途中でリセットする仕組みがあって実際に復帰できるか?
が重要
大手の試験もそういうのが多い
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とかじゃないかな
> パリティとエラー含めて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
だよなw
58デフォルトの名無しさん (ワッチョイ 3c19-vBoO)
2018/10/08(月) 22:23:12.19ID:JzRq+M5U0 例えば下限が-10、上限が10として、
上限がくるまではずっとインクリメントして、
上限到達後、下限がくるまではずっとデクリメントするような、
数値間で折り返しを続けるプログラムを考えてみました。
https://ideone.com/LVqCtz
↑これだと上限に達したか、下限に達したかのフラグや
それを判定する箇所がスマートではない気がするのですが、
よりよい方法をお教えいただけないでしょうか
上限がくるまではずっとインクリメントして、
上限到達後、下限がくるまではずっとデクリメントするような、
数値間で折り返しを続けるプログラムを考えてみました。
https://ideone.com/LVqCtz
↑これだと上限に達したか、下限に達したかのフラグや
それを判定する箇所がスマートではない気がするのですが、
よりよい方法をお教えいただけないでしょうか
59デフォルトの名無しさん (ワッチョイ 6ee3-BBJl)
2018/10/08(月) 22:26:53.17ID:kgyl4Ui4060デフォルトの名無しさん (アウアウウー 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);
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:hbOXQr6La62デフォルトの名無しさん (アウアウエー 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;
}
}
ベタに書くのが一番でしょ
難しく考えるのも変な技巧を凝らすのもよくない
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:69FY4WT2064デフォルトの名無しさん (アウアウウー 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)
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:cTdbH72R067デフォルトの名無しさん (ワッチョイ 2175-t0gY)
2018/10/09(火) 15:26:17.65ID:X0YGRA9k0 チンコの皮が被ってるところとか
68デフォルトの名無しさん (ワッチョイ 7c8a-y1q8)
2018/10/09(火) 16:16:14.26ID:U5wLUz1A0 >>66
using が2つ足らないな
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をオーバーライドしてテキストの表示領域そのものを弄る事ができるなら
そちらのほうが理想なのですが、自分ではどこをどう弄ればいいのかわからず……
よろしくお願いします。
テキストボックスとは別に配置した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/
テキストボックスのスクロール位置を取得・復元する方法
http://pineplanter.moo.jp/non-it-salaryman/2017/11/23/csharp-scroll-control/
75デフォルトの名無しさん (ワッチョイ ee9f-GiWE)
2018/10/09(火) 19:53:44.82ID:2+Q7pYPf076デフォルトの名無しさん (ワッチョイ 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:8CCC3YOka79デフォルトの名無しさん (ブーイモ MM98-Ww/X)
2018/10/10(水) 18:55:52.86ID:FcX3TrAZM >>77
unsafe { var list = new ReadOnlySpan<int>((void*)ptr, n).ToList(); }
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の所に書くのがいいんですか?
別クラスに書いたコードを使いたい時、
○○ △△ = new ○○を記述して使ってるんですが、form Loadとかchangeイベント等で復数回登場する時でも都度使う所の近くで書いた方がいいんですか?それとも上部のpublicの所に書くのがいいんですか?
81デフォルトの名無しさん (アウアウウー Sa08-Ww/X)
2018/10/10(水) 23:49:16.98ID:JyejHG/Ma82デフォルトの名無しさん (アウアウウー Saeb-gr2c)
2018/10/11(木) 06:37:46.18ID:1VjRo7FSa83デフォルトの名無しさん (ワッチョイ 67b3-9sSg)
2018/10/11(木) 07:18:56.97ID:8Foxk2RW0 namespaceまで作ってプログラムしたことが無いのですが、プロは駆使するのが普通なのでしょうか?
アニマルインタフェース実装した猫クラスと犬クラスを人クラスがメッセージ出して鳴かせるレベルの超初歩設計しかした事無いので、どこでnamespace使うのかなと悩んでおります
アニマルインタフェース実装した猫クラスと犬クラスを人クラスがメッセージ出して鳴かせるレベルの超初歩設計しかした事無いので、どこでnamespace使うのかなと悩んでおります
84デフォルトの名無しさん (ワッチョイ 7f81-DjIR)
2018/10/11(木) 07:37:53.81ID:Mcte2Vdx0 ファイルいっぱいあったらフォルダ分けして整理するやろ?
namespaceもおんなじようなもん
namespaceもおんなじようなもん
85デフォルトの名無しさん (オイコラミネオ MMfb-SRlQ)
2018/10/11(木) 08:25:56.15ID:RUSG7cNqM86デフォルトの名無しさん (ペラペラ SDff-9sSg)
2018/10/11(木) 12:30:54.25ID:iiNB2I9YD87デフォルトの名無しさん (ワッチョイ ffeb-JlWZ)
2018/10/11(木) 14:06:58.98ID:sbec5Ilz0 JavaをやっていてJavaらしいコードを書ける人は大勢いるだろうけどさ
C#らしいコードを書ける人って、C#でプログラミングをしてる人の1割もいないんじゃねえのか?
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。
フィールドにしなくても要件を満たせるものをフィールドにしてはいけない。
何にしても、質問は意図が分かるように書いて欲しいね。
>それとも上部の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とエクスプローラでも詳細表示は変更後のアイコンになるのですが、エクスプローラでの大アイコンやショートカット、ドラッグした時のアイコンが古いままです。
どうすれば新しいアイコンに更新できますか。
途中でアイコンを変更しました。Formプロパティ部分とプロジェクトのプロパティ-アプリケーションのアイコンの2か所です。
実行時のFormとエクスプローラでも詳細表示は変更後のアイコンになるのですが、エクスプローラでの大アイコンやショートカット、ドラッグした時のアイコンが古いままです。
どうすれば新しいアイコンに更新できますか。
95デフォルトの名無しさん (ワッチョイ 27f2-7Kxw)
2018/10/12(金) 11:01:50.14ID:4rHGu3Q90 一度Windows標準のアイコンに戻して
再度新しいアイコンを選択してSaveしてから
再起動すれば更新されてない?
再度新しいアイコンを選択して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の気まぐれだから変更されるまで待て
アイコンが変更されるのはWindowsの気まぐれだから変更されるまで待て
98デフォルトの名無しさん (ワンミングク MMbf-s6iV)
2018/10/12(金) 13:05:26.62ID:+DY7sdXwM99デフォルトの名無しさん (ワッチョイ 5fe9-DjIR)
2018/10/12(金) 13:49:04.90ID:Prl0TAqQ0 アイコンってどっかでキャッシュクリア的なことできなかったっけ?
100デフォルトの名無しさん (オッペケ Sr9b-xlqx)
2018/10/12(金) 14:37:18.55ID:a9HH9GNYr101デフォルトの名無しさん (ワッチョイ 272b-JlWZ)
2018/10/12(金) 16:30:01.41ID:arkneguz0 質問ですが
デバッグ構成でのexeとリリース構成でのexeは
デバッグ情報が邪魔する分、デバッグexeの方が遅いという話は知っていましたが
「微々たるもんだろ」とあまり気に留めてませんでしたが
それが原因と思われる現象に当たりまして・・・
デバッグは問題無く通るので実行すると、データが混雑すると固まるのです
試しにリリース構成のexeにしたら問題無く動きます
どうやらデリゲートのBeginInvokeを使っているので
非同期処理になりタイミングずれにデバッグ情報が相まって固まってるようなんだけど
こういう場合
「リリースexeで問題無いならいいじゃん!」なのか
「いやいや、タイミングがずれるとエラーが出る可能性があるなら対処しておくべき!」なのか
どうなんでしょうね?
デバッグ構成での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);
↓のソースだと<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(...)
.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()?とはやったのですがうまくいかず、わからなかったのですが
そこで使うんですね
ありがとうございました。
SelectNodes(...)?.で解決しました
var elm?とか .Select()?とはやったのですがうまくいかず、わからなかったのですが
そこで使うんですね
ありがとうございました。
108デフォルトの名無しさん (ワッチョイ 67b3-QRc/)
2018/10/13(土) 20:01:17.77ID:wM7VhDKV0109デフォルトの名無しさん (ワッチョイ 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でも負荷高くなったら起きるんじゃないのか
それReleaseでも負荷高くなったら起きるんじゃないのか
111デフォルトの名無しさん (ブーイモ MM0b-wEhW)
2018/10/13(土) 23:30:26.22ID:LdRaeBfZM112デフォルトの名無しさん (スプッッ Sd7f-W7JH)
2018/10/14(日) 00:53:17.18ID:RAs/0wRTd PC版Lineに来る最新メッセージを読み取る方法ってある?
調べても出てこず...
調べても出てこず...
113デフォルトの名無しさん (ワッチョイ 5feb-DjIR)
2018/10/14(日) 08:53:21.20ID:m3J+i7Py0114デフォルトの名無しさん (スップ Sd7f-W7JH)
2018/10/14(日) 09:15:43.47ID:rtryEG4ad115デフォルトの名無しさん (ワッチョイ bf0a-a0t8)
2018/10/15(月) 10:13:33.82ID:TGR3LnQ40 console.writeってコンパイルの最適化時に削除されますか?
116デフォルトの名無しさん (ワッチョイ 5fe9-DjIR)
2018/10/15(月) 10:28:59.02ID:pVjp+zOb0117115 (ワッチョイ 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
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時にはこいつを呼び出すコードそのものが消える
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を使うようにします。
ありがとうございます、Debug.Writeを使うようにします。
121デフォルトの名無しさん (ブーイモ MM6b-wEhW)
2018/10/15(月) 15:20:25.49ID:mYzH73J7M 工数一週間以上の開発ならちゃんとしたロギングライブラリ使ったほうがいいよ
122デフォルトの名無しさん (ワッチョイ c7e3-FjYh)
2018/10/15(月) 18:16:16.25ID:il4L6pQz0123デフォルトの名無しさん (アウアウウー Saeb-pt3f)
2018/10/15(月) 19:00:08.62ID:SAlDu2eYa どのログ出力ライブラリの話をしているかは知らないが
キューで実装されているならログ順序は保証されるだろうに
もしくはスレッドセーフでないライブラリを複数スレッドから触っているか
キューで実装されているならログ順序は保証されるだろうに
もしくはスレッドセーフでないライブラリを複数スレッドから触っているか
124デフォルトの名無しさん (ワッチョイ c7e3-FjYh)
2018/10/15(月) 19:55:33.87ID:il4L6pQz0125デフォルトの名無しさん (アウアウウー Saeb-pt3f)
2018/10/15(月) 21:07:45.41ID:SAlDu2eYa >>123
情報が小出しかつ不明瞭だからエスパーしているが
複数スレッドからログ出力する場合の順序が未保証だからじゃないか
それがログ出力ライブラリとして妥当かどうかは更に別の話になるが
キューに積む積まない問わず、いいログ出力ライブラリって何がある?
情報が小出しかつ不明瞭だからエスパーしているが
複数スレッドからログ出力する場合の順序が未保証だからじゃないか
それがログ出力ライブラリとして妥当かどうかは更に別の話になるが
キューに積む積まない問わず、いいログ出力ライブラリって何がある?
126デフォルトの名無しさん (アウアウウー Saeb-wEhW)
2018/10/15(月) 21:21:29.42ID:on44pmoFa 最近だとSerilogかな
ファッキンビチグソlog4jのパクリ系じゃないからシンプルで使いやすいし、
後でログの解析が非常に容易
ファッキンビチグソ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さんじゃないですか
使い方間違えててマルチスレッドモードになってない率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();//終わるまで画面をロックさせたくないが、これが終わっていない段階で他のボタンを押されると困る
}
↓この処理をボタン等のイベントから実行した場合、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に
できないような要件もありうるから)だろうけどほとんどの場合はそれでいいでしょ
そもそもそのためのawaitでしょう。
もちろん、常にそうできるわけじゃない(JKが終わったからって無条件でボタンをEnableに
できないような要件もありうるから)だろうけどほとんどの場合はそれでいいでしょ
135デフォルトの名無しさん (ワッチョイ 7f80-WnU0)
2018/10/16(火) 13:48:09.68ID:TeNN2wBh0 await は非同期処理を、同期的に書けるもの
await で検索すれば?
await で検索すれば?
136デフォルトの名無しさん (ササクッテロル Sp9b-y1e+)
2018/10/16(火) 15:40:53.54ID:h+X94emHp137デフォルトの名無しさん (ワッチョイ 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");
}
}
こういう雰囲気?
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個書き、別クラスに追加するコード書いたんですけど、データだけ取ってきてクラスじゃなくフォームの方に書いた方が分かりやすいですかね?
別フォームでもコンボボックスに同じように追加するのがあるので使い回してるんですけど...
説明下手で申し訳ないですが、ご教授下さい。
エクセルシート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側に書く。
コンボボックスを引数で渡すような馬鹿なことはしちゃだめ
ワークシートを操作するクラスを作って、そこに列のデータを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 エクセルにコンボボックス番号、シート番号、セル範囲をかいておく
それをコンボボックスのアイテムに入れてくれるクラスを作る
エクセルをいじるだけでコンボボックスのデータができる
こんな感じかな?
1クラスでlist<string>を作る
シート番号、セル開始行、列、セルの終わりを入れる
combobox1.items.AddRange( )で
2 コンボボックスをList化しておく
コンボボックス番号を入れるとitemsにかえしてくれるクラスにする
3 エクセルにコンボボックス番号、シート番号、セル範囲をかいておく
それをコンボボックスのアイテムに入れてくれるクラスを作る
エクセルをいじるだけでコンボボックスのデータができる
こんな感じかな?
142デフォルトの名無しさん (ワッチョイ 67b3-9sSg)
2018/10/17(水) 07:14:52.68ID:JMO34tOe0 C#やってきたけどjava土方のが仕事あって羨ましい
シンタクスは似てるけど採用側は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年はやっていける。
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しかないで
java拒否したらphpしかないで
147デフォルトの名無しさん (ワッチョイ 7fa5-7Kxw)
2018/10/17(水) 20:08:15.98ID:A92Ghs040 へーJava勉強してみようかなー
ってJavaとJava Scriptの違いをさっき調べて知ったくらいだけどwww
って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
スッキリわかる Java入門 第2版、2014
151デフォルトの名無しさん (ワッチョイ df9b-DjIR)
2018/10/17(水) 21:47:31.88ID:6MaVa97X0152デフォルトの名無しさん (ワッチョイ bf8a-JlWZ)
2018/10/17(水) 22:32:39.40ID:vYj/Og3S0 ずっとC# + Windows FormsでGUIやってたけど、C++とWin32API使い始めたら、めっちゃ高速でびっくりだよ。
GIUI使いたい人はC#なんて捨てちまえ。
GIUI使いたい人はC#なんて捨てちまえ。
153デフォルトの名無しさん (ワッチョイ 0fb3-7PZ0)
2018/10/18(木) 02:06:12.46ID:JCcaGiED0154デフォルトの名無しさん (ワッチョイ a3b3-TTtA)
2018/10/18(木) 06:54:30.01ID:1ktj5P410 >>152
Win32APIで納品された客可哀想
Win32APIで納品された客可哀想
155デフォルトの名無しさん (ワッチョイ cac3-GnXk)
2018/10/18(木) 08:13:38.33ID:jQKgibt10 >>152
このスレC++,MFC,ATL,COM+を経て、C#のやつも結構おるだろ
このスレ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に対応する列の番号を入れておく方法もあるが、
個人的にはお勧めしないなあ
起動の遅さをパフォーマンスの悪さと錯覚されてるだけ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言語の頃からやってる
MSC+SDKでC言語の頃からやってる
164デフォルトの名無しさん (アウアウエー Sae2-hgbC)
2018/10/19(金) 11:40:51.68ID:KTHcKJLya >>162
「C# pathを通す」で検索してトップに出てくる記事の方法でたぶん出来ると思う
「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の頃かなぁ
Win 3.1の頃かなぁ
167デフォルトの名無しさん (ワッチョイ 5f17-usPd)
2018/10/19(金) 18:38:13.29ID:IZvEaNuI0 >>162
AppDomain.CurrentDomain.AssemblyResolve
AppDomain.CurrentDomain.AssemblyResolve
168デフォルトの名無しさん (ドコグロ MM8a-Kx/I)
2018/10/19(金) 19:52:33.47ID:e848+/7OM169デフォルトの名無しさん (ワッチョイ 4b43-Dtax)
2018/10/19(金) 21:50:14.52ID:geknAxVx0 ジジイばかりじゃねーかw
って俺も孫が先月産まれた訳だが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から
MFC(VC)以前のWindows3.0から
173デフォルトの名無しさん (ドコグロ MM22-b3y3)
2018/10/20(土) 08:03:50.86ID:vp6V3Xy/M174デフォルトの名無しさん (アウアウウー Sa9f-HRlU)
2018/10/20(土) 08:13:45.80ID:/P2yZ5cia 今の若者は顕示欲が強いく批判もされたくないから実名でブログの方が理にかなってるのだろう
175デフォルトの名無しさん (ドコグロ MM22-b3y3)
2018/10/20(土) 08:18:20.72ID:vp6V3Xy/M176デフォルトの名無しさん (アウアウカー Safb-dUTK)
2018/10/20(土) 08:20:31.03ID:Nttc2RvPa ⒊0は日本じゃ売られなかったって誰か教えてやれよ。。。
177デフォルトの名無しさん (ワッチョイ 6ab3-b3y3)
2018/10/20(土) 08:59:16.77ID:8XvHu+iJ0 >>176
え?
https://www.betaarchive.com/imageupload/2017-12/1512511364.th.57831.jpg
Windows for Workgroupsと勘違いしてるのかな?
え?
https://www.betaarchive.com/imageupload/2017-12/1512511364.th.57831.jpg
Windows for Workgroupsと勘違いしてるのかな?
178デフォルトの名無しさん (アウアウカー Safb-dUTK)
2018/10/20(土) 09:17:14.34ID:Nttc2RvPa 悪かったよ。
B何てあったんか。
PC98懐かし過ぎて二度見したわw
B何てあったんか。
PC98懐かし過ぎて二度見したわw
179デフォルトの名無しさん (ワッチョイ 6ab3-b3y3)
2018/10/20(土) 09:22:24.86ID:8XvHu+iJ0 >>174
そう言うのもあるだろうけど、俺等の世代はテキスト主体だったけど今の若い奴等は画像メインって言うのが大きい気がする
俺だけかも知れないけど640KBでやりくりして56Kbpsがスゲーって言ってた世代の記憶は一生消えないと思う
そう言うのもあるだろうけど、俺等の世代はテキスト主体だったけど今の若い奴等は画像メインって言うのが大きい気がする
俺だけかも知れないけど640KBでやりくりして56Kbpsがスゲーって言ってた世代の記憶は一生消えないと思う
180デフォルトの名無しさん (ワッチョイ bea5-Fc6z)
2018/10/20(土) 10:03:32.03ID:qexLty9p0 Task.Delay()の時間設定ってかなりテキトーですか?
0と1msがあまりにも差がありすぎる気がス
0と1msがあまりにも差がありすぎる気がス
181デフォルトの名無しさん (ワッチョイ 0fd3-usPd)
2018/10/20(土) 10:54:16.89ID:ODHHe6QF0 >>180
そりゃ「"最小***ms以降"で目を覚まして」ぐらいの意味だからねそれ
1ms単位できっちりスレッド切り替えを保証できるOSでは無いのだ
状況次第だけどMMCSSやtimeBeginPeriod(非推奨)を設定すればある程度改善できる場合もある
そりゃ「"最小***ms以降"で目を覚まして」ぐらいの意味だからねそれ
1ms単位できっちりスレッド切り替えを保証できるOSでは無いのだ
状況次第だけどMMCSSやtimeBeginPeriod(非推奨)を設定すればある程度改善できる場合もある
182デフォルトの名無しさん (ワッチョイ bea5-Fc6z)
2018/10/20(土) 12:57:53.42ID:qexLty9p0 >>181
そうなのか
正確に測ったわけじゃないけど1msに設定しても
体感的に10msくらい止まってる気がする
短い停止はThread.Sleepのほうがレスポンス速いな
でもこっちは長くするとデッドロック?しちゃう
でTass.Delayにしてみたんだけど・・・
あちらを立てればこちらが立たずだな
そうなのか
正確に測ったわけじゃないけど1msに設定しても
体感的に10msくらい止まってる気がする
短い停止はThread.Sleepのほうがレスポンス速いな
でもこっちは長くするとデッドロック?しちゃう
でTass.Delayにしてみたんだけど・・・
あちらを立てればこちらが立たずだな
183デフォルトの名無しさん (ワッチョイ be80-6qH8)
2018/10/20(土) 13:07:38.97ID:dg5LoPsJ0 10ms ぐらいだろ
組み込みみたいな、リアルタイムOS じゃないから
組み込みみたいな、リアルタイムOS じゃないから
184デフォルトの名無しさん (ワッチョイ be81-fIkj)
2018/10/20(土) 13:28:52.22ID:fOofNO0j0185デフォルトの名無しさん (スッップ 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
Path.GetRelativePath
189デフォルトの名無しさん (アウアウカー Safb-dUTK)
2018/10/20(土) 16:00:52.98ID:Nttc2RvPa190デフォルトの名無しさん (ワッチョイ 371b-yaxr)
2018/10/21(日) 23:07:31.83ID:gVzxUBHM0 配列の次元を動的に決める方法ってあります?
例えばHairetsuっていう名前のオブジェクトがあったとして、
コンストラクタでhoge(int x)が呼び出された時は1次元配列、
hoge(int x, int y)が呼び出された時は2次元配列にしたい。
例えば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?
Array.CreateInstance?
192デフォルトの名無しさん (ワッチョイ c3eb-nBLa)
2018/10/22(月) 00:21:30.44ID:KsYG64zi0193デフォルトの名無しさん (ワッチョイ 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を追加しても無反応でした
よければご教授よろしくお願いします……
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();
}
簡単だろ...と思ったけどそうでもないみたいね
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/eoCJYy0200デフォルトの名無しさん (ワッチョイ f3a5-Fc6z)
2018/10/23(火) 08:10:29.01ID:WlOKeoDJ0 素人のボヤキで恐縮ですが
何度も書いては直しを繰り返し書き足したコードが
最後の最後、どうしてもデバッグが通らなくなりまして
いくら調べても動かない原因か分からず
もう考えるの面倒くさくなって
新規のFormに一から同じコード書き直してみたら・・・動くじゃん!
たぶん何度もトライ&エラーしたから何処かで操作間違えて
IDEが自動で生成したコードにゴミが混じったんじゃないかと思ったのですが
この動くコードと動かないコードの違いを簡単に発見できませんかね?
今、全ての.csファイルを一行ずつ比較してますが・・・もう飽きましたwww
メインのコードは全く同じでした
ちなみにデバッグで出るエラーは、あるクラスのメソッドの定義が無いというやつです
何度も書いては直しを繰り返し書き足したコードが
最後の最後、どうしてもデバッグが通らなくなりまして
いくら調べても動かない原因か分からず
もう考えるの面倒くさくなって
新規の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でちゃんとクラス指定してますし
少なくとも手で入力したコードは同じなので
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回目通るときにエラーで別のプロセスで使用されているって出るんですがどういったエラーですか?
ファイル開いてるってことですか?
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はオープンからクローズまでやってくれるので普通は発生しない
他でそのファイルを触ってない?
あと自プログラム上はクローズしたけどアンチウィルスソフトがまだ触ってるってケースがある
そう
ただ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回目の実行時にエラーの原因がある
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をそのまま使い続けていた方がいい?
無料の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のスレで聞いて
メリットとデメリット詳細に説明するのは難しいと思うから
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に移行しました。
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に乗り換えまつ
2017 for Windows Desktopに乗り換えまつ
218デフォルトの名無しさん (アウアウウー Sa9f-tSmu)
2018/10/24(水) 00:29:43.28ID:XKgg3tJUa >>216は間違い
VS Communityは組織の規模に制限があるが用途に制限はない
VS Communityは組織の規模に制限があるが用途に制限はない
219デフォルトの名無しさん (スップ Sd2a-YMLY)
2018/10/24(水) 07:44:57.85ID:s6gpcYwid220デフォルトの名無しさん (スプッッ Sd2a-w2rH)
2018/10/24(水) 10:07:14.94ID:3/mFq1HRd >>216
5人以上での開発からじゃなかったっけ
5人以上での開発からじゃなかったっけ
221デフォルトの名無しさん (ワッチョイ 2aad-7PZ0)
2018/10/24(水) 13:09:57.36ID:AbQuJmTL0 プログラマーとして転職するにはどんな本までマスターしてれば大丈夫ですか?
ゴールからはじめるC#は読めました。
ゴールからはじめる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書ければ十分仕事できる
JavaならFizBuz書ければ十分仕事できる
224デフォルトの名無しさん (オッペケ Srb3-zYpp)
2018/10/24(水) 13:46:07.47ID:uTlH1PNGr まじかよ
225デフォルトの名無しさん (ワッチョイ 7bea-j6wj)
2018/10/24(水) 13:53:12.06ID:8s24r2uo0226デフォルトの名無しさん (ワンミングク MMda-szOx)
2018/10/24(水) 18:41:34.40ID:HJod1vGPM VS2013でweb formを作っています。
以前VS2008の時代、AjaxControlToolkitのModalPopupExtenderを使って設定用のポップアップを作っていました。
今回同じような事をしたいのですが、VS2013の環境で、同等の事を簡単にできるよい方法はありませんか。
以前VS2008の時代、AjaxControlToolkitのModalPopupExtenderを使って設定用のポップアップを作っていました。
今回同じような事をしたいのですが、VS2013の環境で、同等の事を簡単にできるよい方法はありませんか。
227デフォルトの名無しさん (ブーイモ MMbf-tSmu)
2018/10/24(水) 19:08:39.26ID:KNarJnl6M >>226
WebFormsに頼るのはやめてBootstrapを使ってください
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
開発者の数じゃない
でかい企業は開発者の人数関係なく使っちゃダメ
小さい企業は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や
ってやったらどうなるの?
他は全部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+T0WbLa234デフォルトの名無しさん (オッペケ 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が入ってるのでサイズがめちゃことなってしまって
読み込みはできたのだけど、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:pUZreFeO0237デフォルトの名無しさん (アウアウウー Sa9f-w+1b)
2018/10/24(水) 21:55:47.42ID:0ETaBBAFa238デフォルトの名無しさん (アウアウウー Sa9f-tSmu)
2018/10/24(水) 22:47:55.18ID:FS+T0WbLa >>236
ビルドだけが目的ならVSなんか全く必要ないよ
ビルドだけが目的ならVSなんか全く必要ないよ
239デフォルトの名無しさん (スプッッ Sdc3-w2rH)
2018/10/24(水) 23:48:44.98ID:sUnPoBu6d240デフォルトの名無しさん (ワッチョイ 4fe3-4eGK)
2018/10/25(木) 00:00:10.59ID:6CwUNa2j0 >>238
じゃ、Visualstudioって実質金出さんでもいいの?
じゃ、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とかその辺なの?
まずその想定してるっていうPixelFormatは正しいのかExplorerからプロパティ>詳細のビットの深さ見て確認する
> 2バイトのところ4バイトのARGBが入ってる
想定とBitmapDataでどっちがどっちなのか読み取れないけど1ピクセル2バイトってRGB565とかその辺なの?
244デフォルトの名無しさん (アウアウエー Sa93-hBDZ)
2018/10/25(木) 11:59:33.09ID:dYjhTuUoa たぶん直接の原因は>>237にある通りじゃないのかな
文面を見る限り質問者はあまり注意深い人に思えないしw
文面を見る限り質問者はあまり注意深い人に思えないし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]
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
フルカラーをトゥルーカラーにしたり、アルファーチャンネルを付け加えたり、
そういうフォーマットの変換機能も兼ねてるってことなのかな
MSDNのLockBitsの解説にはそんなこと書いてないけど。
不細工な設計だねw
249デフォルトの名無しさん (ササクッテロル Sp1f-g4wS)
2018/10/25(木) 21:41:33.94ID:JIQ6DfsAp250デフォルトの名無しさん (アウアウエー Sa93-hBDZ)
2018/10/25(木) 22:26:50.74ID:n3Rz+F82a >>248
フォーマットの変換機能は別に持たせた方がスマートでしょ
(現にCloneでできるみたいだし)
少なくともLockBitsにPixelFormatを引数にとらないバージョンがあってしかるべき。
GDI+はやっつけで作ったのかこういう不条理な実装他でも見た記憶があるなあ
フォーマットの変換機能は別に持たせた方がスマートでしょ
(現に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自体は自動的に複製を作るようなもんだけどね)
ソース元のフォーマットに制限されず指定のフォーマットで読み書きできた方が普通に便利でしょ
別のビットマップが欲しいわけじゃないのにCloneを仲介する方が意味わからん
(LockBits自体は自動的に複製を作るようなもんだけどね)
253デフォルトの名無しさん (ワッチョイ 579b-42fi)
2018/10/25(木) 23:30:45.76ID:oh52xQKG0 cbo1のテキストと同じものを3行目の3列目から右に同じものを見つかるまで探し、見つかったセルから下へループし、「※」印がある場合のみ「※」印の行の1列目の氏名を配列に入れ、cbo2にADD。
注)入れる際に同一氏名がすでに配列にある場合除外。
これをやるために、closedxmlで書いて見ましたがちょっと処理が遅い。
コードの書き方的には右にforで最終列までループ処理→ifで一致
forで一致した列の最終行まで下へループ処理→ifで一致したら配列に詰め込む。
現在ここで重複排除のやり方が分からないのでとりあえず全て配列にいれてます。
どうやって、書くのが最善ですか?
https://i.imgur.com/hEMt9ir.jpg
注)入れる際に同一氏名がすでに配列にある場合除外。
これをやるために、closedxmlで書いて見ましたがちょっと処理が遅い。
コードの書き方的には右にforで最終列までループ処理→ifで一致
forで一致した列の最終行まで下へループ処理→ifで一致したら配列に詰め込む。
現在ここで重複排除のやり方が分からないのでとりあえず全て配列にいれてます。
どうやって、書くのが最善ですか?
https://i.imgur.com/hEMt9ir.jpg
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の操作を自動することではなくて目的とする結果を得ることだろ?
まず要件を明確にし、それをそのままコードに落とすだけだ
カーソルだのセルだのは最後の最後に出てくるどうでもいい瑣末な部分だ
低い抽象度でものを考えすぎている
お前がやりたいのは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#に機械的に書き直せ
それ以上細かいことはスレ違い
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:QwPOuwmq0262デフォルトの名無しさん (ワッチョイ 4fe3-4eGK)
2018/10/27(土) 15:57:45.83ID:if75aWaZ0 >>260
普通にc#からエクセルファイル操作できるから
普通にc#からエクセルファイル操作できるから
263デフォルトの名無しさん (アウアウウー Sa1f-DBFP)
2018/10/27(土) 15:58:58.91ID:ntx2HiKDa 便所掃除ができることをドヤ顔で言わなくてよろしい
264デフォルトの名無しさん (ワッチョイ cdeb-7TBo)
2018/10/27(土) 22:41:19.36ID:Qgr0BHqv0265デフォルトの名無しさん (ワッチョイ 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の関数や変数は持たない方が望ましいと聞いたんだがそこまで意識してプログラミングしてる?
役割を逸脱してる可能性が高いと言われてるのだがコード的にそうはさせない方法とかあるのだろうか
privateの関数や変数は持たない方が望ましいと聞いたんだがそこまで意識してプログラミングしてる?
役割を逸脱してる可能性が高いと言われてるのだがコード的にそうはさせない方法とかあるのだろうか
267デフォルトの名無しさん (ワッチョイ eb8a-o90R)
2018/10/28(日) 00:27:12.07ID:hf5/u8050 えなにそれ
publicな変数にしろってこと?
publicな変数にしろってこと?
268デフォルトの名無しさん (ワッチョイ 8b8a-cxcD)
2018/10/28(日) 01:01:32.10ID:sLs9tkqy0 >>267
全部パブリックにしろって話ではないと思うのだが、
クラスとしてちゃんと機能してるかをテストしやすくするものとして確認しやすいように設計をするようにと言われた
アクセッサを準備しろってことなのか
、protectedで作って継承してテストをしやすくしろってことなのかはわかってない
全部パブリックにしろって話ではないと思うのだが、
クラスとしてちゃんと機能してるかをテストしやすくするものとして確認しやすいように設計をするようにと言われた
アクセッサを準備しろってことなのか
、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を事前に呼び出して内部変数の設定をしないと使えないですとかだと
バグのもととかになるから条件縛りを減らしましょうとかってことなんじゃないかと
たぶん本質は内部所持して扱う変数を極力減らしましょうってことなんかなって思ってる
クラスを使うのに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上のコントロールを触ると
「別スレッドからアクセスした」と怒られます
これを回避するために別のデリゲートを挟んでコントロールを触っていますが
これ以外に方法ないでしょうか?
デリゲート挟むと時々信号取りこぼすみたいで
上手くコントロールが反応しないことがあるんで改良したいのです
理屈に疎いので教えてください
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メソッドにちゃんと投げてる?
> コールバックをデリゲートでやってるので
> これは必然的に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を入れたいのですが、どこに入れればいいのでしょうか?
簡単な質問で申し訳ありませんがよろしくお願いします。
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;
ダメージ処理終わった最後
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
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:Lzmpvi1g0281デフォルトの名無しさん (ワッチョイ 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計算するときは身長はメンバで持って体重はメソッドの引数で渡す
あるメソッドで使うからコンストラクタで渡すって考え方自体おかしいかな
メンバはそのクラスが持つ必要があるから持っているわけでメソッドで使うから持っている訳では無い
例えば体クラスでBMIを計算するときは体重、身長は体情報だからクラスのメンバで持たせる
身長クラスでBMI計算するときは身長はメンバで持って体重はメソッドの引数で渡す
283デフォルトの名無しさん (ワッチョイ 8b8a-cxcD)
2018/10/28(日) 17:25:54.20ID:sLs9tkqy0284デフォルトの名無しさん (ブーイモ 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で判定してスレッドセーフにするのが定石みたいだね
https://qiita.com/mounntainn/items/8a2b4f1cf47bd02657f3
自分は上のに近いのでやってる
InvokeRequiedで判定してスレッドセーフにするのが定石みたいだね
287デフォルトの名無しさん (ワッチョイ 05a5-Az/2)
2018/10/29(月) 11:51:55.81ID:IQ5w1AIM0288デフォルトの名無しさん (ワッチョイ 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;
こんな感じのプログラムってなんていいますか?
protected AbBb _abbb;
こんな感じのプログラムってなんていいますか?
291デフォルトの名無しさん (ブーイモ MM5b-DBFP)
2018/10/29(月) 14:44:34.42ID:f3zS/OjjM クソコードというんじゃない?
フィールドをprotectedにしているプログラムはC#では一般的にはそう呼ばれる
フィールドを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っていうんだよ
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:Vdu6vWjQ0299デフォルトの名無しさん (ブーイモ MMbf-DBFP)
2018/10/30(火) 18:45:34.87ID:E+8/TrgCM C#で実務の組み込みって制御系だろ?
変なプロトコルで機器と通信する必要があるだけで、普通のWinPCだぞ
変なプロトコルで機器と通信する必要があるだけで、普通の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する奴だっけ? 的なレベル、何というか世界が広大すぎるしネットで調べてもサイトは何書いてんのか分からないし……わりぃ、やっぱつれぇわ
今の知識としては、インスタンス化は何かnewする奴だっけ? 的なレベル、何というか世界が広大すぎるしネットで調べてもサイトは何書いてんのか分からないし……わりぃ、やっぱつれぇわ
303デフォルトの名無しさん (ワッチョイ ff81-42fi)
2018/10/31(水) 02:34:46.39ID:YeNkIpaX0 作りたいものを作る
その過程で必要なものだけを調べる
道具の使い方だけ勉強しても意味がない
道具は使うためにある
その過程で必要なものだけを調べる
道具の使い方だけ勉強しても意味がない
道具は使うためにある
304デフォルトの名無しさん (ワッチョイ e3d2-8L5D)
2018/10/31(水) 03:38:24.10ID:OyhA4eFa0305デフォルトの名無しさん (ワンミングク 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;と書けるとあるのですがどうやって使えばいいのか?が書かれていません
どのように使えば良いのでしょうか?何が便利になってるのかも?です。
読んでる入門書に例えば普通のメソッドで
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でもヘルパーへの引数に、プロパティ値ではなくプロパティを渡すのに使われたり
わざわざ関数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; }
書く方も別の場所にいちいち関数定義しなくて良い
読む方もそこに処理の内容が書いてあった方が良い
…とも一概に言えない場面は多いので、自分がコーディングしてて
脳が「ここラムダ式で書きたい」と自然に出てくるまでは封印しててもええんやで
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:NuHnUQr6a311デフォルトの名無しさん (ワッチョイ e3d2-o1DS)
2018/10/31(水) 17:27:52.66ID:nRECWsn80 >>310
すいません理解できてないです
というかまだ読んでる本で説明がなされていないようです…
この章を取り敢えず読み切った後また読み返せば理解できるってことですね
LINQとラムダ式?とやらを使わずにメソッド使えばいいやって認識だとこの先苦労しますか?
回答くださった方ありがとうございます
すいません理解できてないです
というかまだ読んでる本で説明がなされていないようです…
この章を取り敢えず読み切った後また読み返せば理解できるってことですね
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はともかく、ラムダ式は必須の知識でしょうね。
少なくとも使えるとコードの書き方に大きな差が出るのは間違いない
ただ、デリゲート自体が初心者には理解しづらい概念とも思うので
よく分からない場合は固執せず後回しにした方がいいかもしれないね
本質的にはそんなに難しい話じゃないから、最初分からなくても時間が解決するはず
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
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にもいくつか乗ってるよ
Wikipediaにもいくつか乗ってるよ
326デフォルトの名無しさん (ワッチョイ 4e80-mY15)
2018/11/01(木) 07:48:57.67ID:PBz6MbCm0 Linq は、Java のStream、Ruby on Rails と同じ。
関数型
メソッドチェーンしていって、一番最後にレコードを取得する。
遅延実行
ずっと、フィルター・SQL 文だけを組み立てて、一番最後だけアクセスする
関数型
メソッドチェーンしていって、一番最後にレコードを取得する。
遅延実行
ずっと、フィルター・SQL 文だけを組み立てて、一番最後だけアクセスする
327デフォルトの名無しさん (スップ Sd5a-rxrj)
2018/11/01(木) 11:43:18.05ID:Ezzdmjted328デフォルトの名無しさん (ブーイモ MM7f-0Z6C)
2018/11/01(木) 11:46:58.88ID:DtT8Cv0dM デリゲートはイベントにも使うよ
そしてそれこそがデリゲートを理解しにくいものにしている最大の原因でもある
そしてそれこそがデリゲートを理解しにくいものにしている最大の原因でもある
329デフォルトの名無しさん (スップ Sd5a-rxrj)
2018/11/01(木) 13:53:28.62ID:Ezzdmjted ラムダ式を何処で使うかの話でデリゲートを何処で使うかについてはふれてないよ
デリゲートの使い道でいうと非同期実行するために使うとか色々ある
ラムダ式に関しては、FuncやActionかメソッドの引数ぐらいでしか使ってないと思うんだけど他になんかある?
デリゲートの使い道でいうと非同期実行するために使うとか色々ある
ラムダ式に関しては、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版使ったことないの?
portable版使ったことないの?
337デフォルトの名無しさん (ワッチョイ caeb-ZA70)
2018/11/02(金) 13:51:48.43ID:1IoIYp5Z0338デフォルトの名無しさん (ワッチョイ 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の方眼を作りました。
クリック時に近い点を取って連続線にしたい場合どうすればいいですか?
{
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座標にも同じような計算式を適用
でそのコピペしたところに組み込むときは画像範囲外の座標を指定した場合はリセットされるので、その辺も改変しないと
「近い点」の定義は?
座標差が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)から求められる
マウス座標に一番近い格子点の座標を求める方法って意味なら、
(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もそうだけど
拡張メソッドはどこで見られるのこれ?
VS2010時代の人力で翻訳されたドキュメントも読めなくなってるし....
MSっていらんことする天才だなw
Googleもそうだけど
345デフォルトの名無しさん (ブーイモ MMba-0Z6C)
2018/11/02(金) 18:48:39.64ID:3EaYIZ29M 「英語で読む」が付いて格段に読みやすくなったわ
英語読めない人は大変だなw
英語読めない人は大変だな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は昔より酷いよな
英語です読むオプションが便利やね
MSDNは昔より酷いよな
英語です読むオプションが便利やね
348デフォルトの名無しさん (ワッチョイ 1ad2-vbIu)
2018/11/02(金) 22:05:20.63ID:n/9UgDRl0 >>344
docsじゃなくて?
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に線を引く
これの繰り返し
数学の問題かな
マウスの座標を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
そりゃそうかw
351デフォルトの名無しさん (ワッチョイ 4ea5-PRUr)
2018/11/03(土) 07:55:15.80ID:SApjZlYC0352デフォルトの名無しさん (ワッチョイ 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だと、ビルドしてステージング環境でテストしてそのまま同じものを本番にデプロイするんだよ
ビルドで切り替えるなら #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#からデリゲートがない言語を見た場合、それは
デリゲートのリテラル( = メソッド)の定義は出来るのにデリゲートの変数の宣言はできない不自由な世界に見える
前にも書いた気がするけど、本質はデリゲートっていう概念を導入することによって
デリゲート型の変数が作れるってことだと思うよ。
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)
ちょっと古いけどこれなんかわりと有名
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
色気を出した瞬間、どこまで詰めるかなんて分からなくなる
結局一人で設計してどこまでやるかなんて一人で決断するしかない
アプリなんて自分が使って満足ならOK
366デフォルトの名無しさん (スプッッ Sd5a-7KdF)
2018/11/05(月) 15:59:03.10ID:QhIuz4Ucd disposeを継承したクラスのインスタンスのデストラクタが参照があるときに呼び出されてるのだけど
そんな現象に見回れた人居ませんか
disposeの継承は関係ないかもしれないけどそのクラスの作りは今そうなってます
そんな現象に見回れた人居ませんか
disposeの継承は関係ないかもしれないけどそのクラスの作りは今そうなってます
367デフォルトの名無しさん (ブーイモ MM7f-0Z6C)
2018/11/05(月) 16:25:54.17ID:9y9XQ9xCM ありえない
今更CLRのそんな基本的なところがバグってるなんて考えられないから、バグがあるのは間違いなく貴方の目か頭の方です
今更CLRのそんな基本的なところがバグってるなんて考えられないから、バグがあるのは間違いなく貴方の目か頭の方です
368デフォルトの名無しさん (スッップ Sdba-qaUX)
2018/11/05(月) 17:39:02.66ID:ci20RGBId >>340
これって前打った点と新しい点を線引いてるけど、前の点はどう記憶してるんですか?前の点にもう一個情報を持たすのは可能ですか?
線が被った時、線をずらして書こうと思ってるんですけど、
例えば↓2マス↑6マスとクリックして書いたとき被るのをちょっと右にずらして書くのは出来たんですけど、
条件をpt.X==p.X && pt.Y<p.Y
だと変わって欲しくないときもズレる。
ズラす条件は直角で、始点を0を基点として
↓に引いた時は左
↑に引いた時は右
←に引いた時は上
右に引いた時は↓
これって前打った点と新しい点を線引いてるけど、前の点はどう記憶してるんですか?前の点にもう一個情報を持たすのは可能ですか?
線が被った時、線をずらして書こうと思ってるんですけど、
例えば↓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
描画範囲が被る場合の判定がちょっと思いつかないけど
前の点にもう一個情報じゃなく描画した点の位置を全部記憶してからになる気がする
線描画を半透明にして被った場合にもわかるようにとか駄目なの?
>前の点はどう記憶
フィールドのPoint pt
描画範囲が被る場合の判定がちょっと思いつかないけど
前の点にもう一個情報じゃなく描画した点の位置を全部記憶してからになる気がする
線描画を半透明にして被った場合にもわかるようにとか駄目なの?
370デフォルトの名無しさん (ワッチョイ 9a8a-7KdF)
2018/11/05(月) 23:06:04.46ID:CiuGU7fm0371デフォルトの名無しさん (ワッチョイ 97b3-zV7r)
2018/11/06(火) 00:58:16.86ID:2irnAq2B0 >>368
pt = pが前の点の記録
pt = pが前の点の記録
372デフォルトの名無しさん (ワッチョイ 039f-MyS3)
2018/11/06(火) 16:46:04.32ID:KNaAB8gP0 async/awaitが難しすぎる
一見簡単そうに見えるんだけど、結構注意深く使わないとこれはまるよね
(Web見ていると使い方で注意事項多いし)
これって、MS的には何を目指したものなの
最初見た時は、初心者向けかなと思ったら偉い難しいのでびっくりした
BackgroundWorkerなんて、結構納得しやすかったのに
一見簡単そうに見えるんだけど、結構注意深く使わないとこれはまるよね
(Web見ていると使い方で注意事項多いし)
これって、MS的には何を目指したものなの
最初見た時は、初心者向けかなと思ったら偉い難しいのでびっくりした
BackgroundWorkerなんて、結構納得しやすかったのに
373デフォルトの名無しさん (アウアウエー Sa52-uVrJ)
2018/11/06(火) 17:49:22.75ID:Irg6T2PQa そこはそんなに難しく考えることないかと
「非同期的にAの終了を待機してその後Bを実行」みたいなコードを
普通のシーケンシャルな処理みたいに書けるようにするためじゃないの?
「非同期的にAの終了を待機してその後Bを実行」みたいなコードを
普通のシーケンシャルな処理みたいに書けるようにするためじゃないの?
374デフォルトの名無しさん (ワッチョイ 8a7e-zV7r)
2018/11/06(火) 18:02:29.90ID:tGae1nmw0 まぁ初心者向けというか、Progress<T>等でも実装を隠蔽しつつ
UIスレッドで行うべき処理を文脈的に記述しやすく…?
いや、個人的にはyieldよろしく妙なコードを生成した気がするし
.NET 4考慮でSynchronizationContext捏ねる方が好きだけどね
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:tGae1nmw0379デフォルトの名無しさん (ワッチョイ 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時間かかる処理;
}
>>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あるいは書籍が欲しいかな
◆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メソッド自体が非同期じゃねーだろそれ
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/
未確認飛行 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(に限った話でもないが)の継続する処理を
どこでに実行するのかカスタマイズするために自分で実装することもできる
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
https://www.kekyo.net/2016/12/06/6186
389デフォルトの名無しさん (アウアウエー Sa52-uVrJ)
2018/11/06(火) 20:39:00.29ID:Irg6T2PQa >>381
落とし穴が存在する、という意味で難しいのは確か。
非同期メソッドに限らず非同期処理は全部そうだけど
>動作が見た目と違い過ぎる
これは勘違い。
testの終了を(非同期的に)待機して終了したら下の行を継続するんだから
むしろ見た目通りでしょ。
そこでメソッドを抜けてるわけじゃない。
ただスレッドの占有を止めるだけ
落とし穴が存在する、という意味で難しいのは確か。
非同期メソッドに限らず非同期処理は全部そうだけど
>動作が見た目と違い過ぎる
これは勘違い。
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未設定になってるけど。
>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出来ない
試したコードを貼ってくれないか?
皆が >>381 の書き込みを見て想像したコードは
https://ideone.com/gVD0Ob こんなのだと思うけど
ご覧の通りTask<int>からintには変換できないし、intはawait出来ない
392デフォルトの名無しさん (ワッチョイ 039f-MyS3)
2018/11/06(火) 21:05:03.24ID:KNaAB8gP0393デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 21:06:23.76ID:QbvaQ8DKa 初心者には難しというか誰に対しても理念をしっかり理解しないと使えないし
それでも誤用してる人も多い
スレッドの流れもわからないでいろいろバグコード作ってて後で思ったように動かなくなる
それよりもTaskを使ったシグネチャーで一貫性が損なわれてるのが気持ち悪い
あとから出てきた言語などではasync awaitはきれいになってたりする
それまでが暗黒だったのですこし明るくなっただけでもすごく進歩してると思い込んでる
それでも誤用してる人も多い
スレッドの流れもわからないでいろいろバグコード作ってて後で思ったように動かなくなる
それよりも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なのにこの程度の理解なのかと思った
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座標の計算式
半円の角度の意味がいまいち分からないです。
座標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>本質的には変えてないつもりだったんだけど…
悪いけど
ちょっと、時間もらって 明日に仕切り直しということで
>試したコードを貼ってくれないか?
長いソースなんでそれは無理だけど
単純に簡略化したつもりだったんだけど
実際には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の座標をそのまま入れているけど意味は変わらない
水平方向右が角度開始位置
実行できる環境が無いのでなければ数値変えて自分で動かしてみる方が早く理解できる
>angle座標の計算式
何の計算式が欲しいのかよくわからない。angle=四角に内接する楕円がベースになる
ここを参照
https://dobon.net/vb/dotnet/graphics/drawrectangle.html
ここだとRectAngleの座標をそのまま入れているけど意味は変わらない
水平方向右が角度開始位置
実行できる環境が無いのでなければ数値変えて自分で動かしてみる方が早く理解できる
399デフォルトの名無しさん (ワッチョイ 1ae3-aMe6)
2018/11/06(火) 21:42:34.61ID:pbTvUYL60 >>396
c#と何が関係あるの?
c#と何が関係あるの?
400デフォルトの名無しさん (スップ Sdba-vbIu)
2018/11/06(火) 21:44:58.51ID:ahLHh+wMd401デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 21:44:59.53ID:QbvaQ8DKa ボタン押したらクリックイベントハンドラ(メソッド)で重い処理をしてGUIが固まってしまう
これを何とかするにはGUIに制御を返してやらないといけない
awaitではasyncメソッドの中のどこかのレベルで新しいTaskを作って
そっちで別の処理をさせて上のメソッドに制御を戻すことができる
必ずではないけどawaitに出会ったらスレッドは結果としてそのメソッドを離脱して
上位のコードを実行する
awaitに出会ったらスレッドは処理が終わるのを待ってはいない!(重要)
この場合はGUIに制御が戻ってる
awaitの戻り値が用意できたら良きタイミングでまたGUIから処理(スレッド)をかっぱらって続きを実行させるだけ!
これを何とかするにはGUIに制御を返してやらないといけない
awaitではasyncメソッドの中のどこかのレベルで新しいTaskを作って
そっちで別の処理をさせて上のメソッドに制御を戻すことができる
必ずではないけどawaitに出会ったらスレッドは結果としてそのメソッドを離脱して
上位のコードを実行する
awaitに出会ったらスレッドは処理が終わるのを待ってはいない!(重要)
この場合はGUIに制御が戻ってる
awaitの戻り値が用意できたら良きタイミングでまたGUIから処理(スレッド)をかっぱらって続きを実行させるだけ!
402デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 21:48:32.21ID:QbvaQ8DKa 昔?はmainでawaitできなかった
一次的にでもmainを抜けると言うことはプログラム終了だもの
一次的にでもmainを抜けると言うことはプログラム終了だもの
403デフォルトの名無しさん (アウアウエー Sa52-uVrJ)
2018/11/06(火) 21:48:56.89ID:Irg6T2PQa >>396
(1) まず最終的に描きたいパイをパイに切り取る前の全体の円(楕円)を考えて、
(2) その円(楕円)に外接する長方形を考える
こういう順番だと思うよ
DrawArcが引数に要求するのはその外接する長方形と、時計の3時からの開始位置の角度と
パイの角度だと思う
使ったことはないがw
(1) まず最終的に描きたいパイをパイに切り取る前の全体の円(楕円)を考えて、
(2) その円(楕円)に外接する長方形を考える
こういう順番だと思うよ
DrawArcが引数に要求するのはその外接する長方形と、時計の3時からの開始位置の角度と
パイの角度だと思う
使ったことはないがw
404デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 21:56:24.33ID:QbvaQ8DKa 以下はよく見かける間違い
awaitに出会ったらGUIに処理を渡します
awaitに出会ったらそこで待機して結果が出るのを待ちます
awaitに出会ったらGUIに処理を渡します
awaitに出会ったらそこで待機して結果が出るのを待ちます
405デフォルトの名無しさん (ワッチョイ 039f-MyS3)
2018/11/06(火) 22:26:22.46ID:KNaAB8gP0 作ったんで、書き込もうとするんだけど 書き込めない
HTTP 403 Forbiddened が出る。
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;
}
全角に変換してみた
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ならまだ納得がいく
試したのは、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:jcRa2hVA0409デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 22:54:04.17ID:QbvaQ8DKa 1.
var ret=TestAsync();でコンパイラーエラーがでるとtaskをそのまま受けたい場合に困る
retはただのTask<bool>であってそいつのResultじゃないからそれでいいだろう
2.
そういう流れで処理をしたいのでawaitを使ってる
それが疑問に思うならスタートがまちがってる
var ret=TestAsync();でコンパイラーエラーがでるとtaskをそのまま受けたい場合に困る
retはただのTask<bool>であってそいつのResultじゃないからそれでいいだろう
2.
そういう流れで処理をしたいのでawaitを使ってる
それが疑問に思うならスタートがまちがってる
410406 (ワッチョイ 039f-MyS3)
2018/11/06(火) 22:54:57.62ID:KNaAB8gP0411デフォルトの名無しさん (ワッチョイ 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()とか
従来の書き方を学んだ方が良いと思う、コルーチン的な物の前に
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に置き換えられるって思ったの?
なんで406でのvarが381でintに置き換えられるって思ったの?
413デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 22:57:50.35ID:QbvaQ8DKa 重い処理Aをやってる最中にBもやりたいのでawait asyncを使ってる
重い処理Aの次にCをやるのとBが実行されるのを混同してはいけない
重い処理Aの次にCをやるのとBが実行されるのを混同してはいけない
414デフォルトの名無しさん (ワッチョイ 97d3-QXT6)
2018/11/06(火) 22:58:30.18ID:hiXG5OoB0 全 角 に 変 換 し て み た
やべえコイツ思っていた以上に馬鹿だぞ!!!
int に変換できるとか言ってたらvarで受けてるし面白すぎんだろ
やべえコイツ思っていた以上に馬鹿だぞ!!!
int に変換できるとか言ってたらvarで受けてるし面白すぎんだろ
415デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 23:01:12.62ID:QbvaQ8DKa 初心者あおりみっともない
しかも前のレスは初心者には理解できないだろ
しかも前のレスは初心者には理解できないだろ
416デフォルトの名無しさん (ワッチョイ 039f-MyS3)
2018/11/06(火) 23:01:39.73ID:KNaAB8gP0417デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 23:04:27.04ID:QbvaQ8DKa418デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 23:07:21.50ID:QbvaQ8DKa 重い処理Aをタスクでやって同時にメインのスレッドを実行し続けるのが目的なので
上位のメソッドが引き続き実行されるのが期待の動作
awaitされた重い処理Aの続きのCが実行されるのはまた別の話
上位のメソッドが引き続き実行されるのが期待の動作
awaitされた重い処理Aの続きのCが実行されるのはまた別の話
419デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 23:13:59.85ID:QbvaQ8DKa 1. 順番に処理をやってるけど別の処理も同時にやりたいな A B
2. その処理が終わったらそのタイミングで別の処理をやりたいな A → C
というのを書くのが従来の非同期処理だと面倒なのでawait asyncを使ってる
2. その処理が終わったらそのタイミングで別の処理をやりたいな A → C
というのを書くのが従来の非同期処理だと面倒なのでawait asyncを使ってる
420デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 23:21:04.01ID:QbvaQ8DKa 上の2は従来だとコールバックメソッドだったが
今はawaitより下の行のこと
従来だと処理が終わったらコールバックメソッドを実行する
awaitだと処理が終わるまで待つ
やってることは同じでも概念が変わって見える
でもやっぱり待つと言うのと違うんだよなあ
今はawaitより下の行のこと
従来だと処理が終わったらコールバックメソッドを実行する
awaitだと処理が終わるまで待つ
やってることは同じでも概念が変わって見える
でもやっぱり待つと言うのと違うんだよなあ
421デフォルトの名無しさん (ワッチョイ 039f-MyS3)
2018/11/06(火) 23:26:37.38ID:KNaAB8gP0 ありがとう 真面目に答えてくれた人w
差しあたって、消化しきれていないけど
なんとなく見えてきたので、よく考えてみまーす
>>420
うん。awaitって、2つの意味があるんだよね。
非同期で実行する + ここで同期する(戻り値設定とか)
でも、そこが分かりづらい
でさらに、呼び出し元のスレッドは動く だから、呼び出し元の関数が動くということなんだろうけど
差しあたって、消化しきれていないけど
なんとなく見えてきたので、よく考えてみまーす
>>420
うん。awaitって、2つの意味があるんだよね。
非同期で実行する + ここで同期する(戻り値設定とか)
でも、そこが分かりづらい
でさらに、呼び出し元のスレッドは動く だから、呼び出し元の関数が動くということなんだろうけど
422デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 23:26:58.31ID:QbvaQ8DKa Aを待ったあとにCをやってほしいのに先にBが実行されてしまう
これはけしからん!
というのはスタートが間違い
AとB同時にやってるけど非同期処理Aが終わったらCをやってほしいが正解
これはけしからん!
というのはスタートが間違い
AとB同時にやってるけど非同期処理Aが終わったらCをやってほしいが正解
423デフォルトの名無しさん (ワッチョイ 27c3-YdG1)
2018/11/06(火) 23:30:08.92ID:jcRa2hVA0424デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 23:37:32.97ID:QbvaQ8DKa awaitではどのスレッドも待ってない
元のスレッドは呼び出し元の続きを実行し続ける
新しいtaskスレッドは実行し続ける
勝手に第三のスレッドができて待機したりしない
元のスレッドは呼び出し元の続きを実行し続ける
新しい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 );
みたいに置き換わる。実際はもっと複雑だけど。
処理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に苦情なんて出る?
そもそもソフトウェア技術でハマりやすいスレッド周りをかなり触りやすく提供してくれてる技術だと思うし、その点でMSに苦情なんて出る?
427デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 23:56:24.75ID:QbvaQ8DKa さっきも書いたけど美しくないしわかりづらいんじゃないの?
数年前はもっと理解してる人が少なかった
リアルで合う人の9割ぐらいの人は誤解してたかわからないと言ってた
ググって上位に出てくるいくつかのサイトも間違いを助長するような内容ばかりだったので
誤解するのも仕方ないかなって思ったなあ
数年前はもっと理解してる人が少なかった
リアルで合う人の9割ぐらいの人は誤解してたかわからないと言ってた
ググって上位に出てくるいくつかのサイトも間違いを助長するような内容ばかりだったので
誤解するのも仕方ないかなって思ったなあ
428デフォルトの名無しさん (ワッチョイ 039f-MyS3)
2018/11/07(水) 00:01:47.29ID:qsaRvVqe0 >>424
なるほど 最初は、async/awaitの発想って非同期処理を同期処理のように見せることだと思ってた。
(結局これが正解なのね)
Webを漁っても、元々の動機からずれていくような気がしてたんだけど、
awaitで非同期処理を挟むけど同期処理をしているものと思えば、
当初の動機との整合性は取れる。
で、async/awaitの関数は(TestAsync)と書いたものは非同期なのだから
当然呼び出し元は、そのまま動いていくと。
これで、自分の中では大きなとこの整合性はとれたのかな
なるほど 最初は、async/awaitの発想って非同期処理を同期処理のように見せることだと思ってた。
(結局これが正解なのね)
Webを漁っても、元々の動機からずれていくような気がしてたんだけど、
awaitで非同期処理を挟むけど同期処理をしているものと思えば、
当初の動機との整合性は取れる。
で、async/awaitの関数は(TestAsync)と書いたものは非同期なのだから
当然呼び出し元は、そのまま動いていくと。
これで、自分の中では大きなとこの整合性はとれたのかな
429デフォルトの名無しさん (アウアウエー Sa52-uVrJ)
2018/11/07(水) 00:02:18.96ID:dWNwSiW+a430デフォルトの名無しさん (ワッチョイ 039f-MyS3)
2018/11/07(水) 00:20:23.00ID:qsaRvVqe0 >>425
BackgroundWorkerからasnc/awaitに飛んだから
Taskすらまともに理解していなんだけど、
TaskSchedulerとSynchronizationContextはキーワードとし覚えてる
レベルアップするために、そこを解説したものを教えてください。
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
cmd.exe とか、特定の命令を半角で書くと、5ch は受け付けない。
ちょっとした英単語の書き込みでハッキングされるとか、5ch の運営は、アホなんだろう
Mango 板で、単語の絞り込みのテストができる
例えば、ドットなら、💩e みたいな文字参照を使えば、書き込める
cmd💩eexe
432デフォルトの名無しさん (ワッチョイ 5bc9-MyS3)
2018/11/07(水) 00:38:25.44ID:T3rtNmkK0 >>424
a「wait」って名前が誤解招いている感じ
a「wait」って名前が誤解招いている感じ
433431 (ワッチョイ 4e80-mY15)
2018/11/07(水) 00:40:03.17ID:+978RLDn0 16進数の2e は間違い。ウンコが表示されたw
例えば、ドットなら、10進数の. みたいな文字参照を使えば、書き込める
cmd.exe
例えば、ドットなら、10進数の. みたいな文字参照を使えば、書き込める
cmd.exe
434デフォルトの名無しさん (ワッチョイ 4e81-mm7G)
2018/11/07(水) 00:41:05.63ID:NkMDfY750435デフォルトの名無しさん (ワッチョイ 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が実装されてるらしいんだけど
どう実装されているのかが知りたい。
>俺も純粋に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の上にマウスオーバーすれば型教えてくれるよ?
まず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に何が入るのかは気になるからローカルウォッチで見た
だから、コンパイルエラーの方が本来の姿だと思ってたけど…
>まずvarはシンタックスシュガーじゃないよ
というのは、どこで判断するの?
シンタックスシュガーか否かなんての 言語仕様以外の判断基準って存在するの?
delegate、匿名メソッド、ラムダ式周りなんて、旧バージョンでは許されなかった
代入が普通に許されてなかったっけ?
疑問に思った全てを、MSDNで確認するわけではないよね。
>定義した型と違う型が返ってくるなんて言語仕様そのものからかわっちゃうじゃない
いやvarだから定義すらしてないし、脳内変換では、boolだと思い込んでるから
>どんな環境でテストしてるのかわからんけどVSとかIDEならvarの上にマウスオーバーすれば型教えてくれるよ?
だから、テストした段階で、気づいていると>>435にも書いたんだけど これは、今回の一連の質問以前に知ってた
実際には、retに何が入るのかは気になるからローカルウォッチで見た
だから、コンパイルエラーの方が本来の姿だと思ってたけど…
438デフォルトの名無しさん (ワッチョイ 1ae3-aMe6)
2018/11/07(水) 01:50:14.49ID:Z88Q6V1f0 >>436
XMLDocumentにかざしたけど出ないね
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は右辺から型を推論する、メソッドが○○型を返しますって定義されてるからその型になる
>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
https://i.imgur.com/T2Wmm9g.png
出るぞ
べつに型名スペルミスしててもusingなくても出るぞ
C++でautoとPPLを絡めると俺も怪しい時があるし
コンパイルが通るコードを
コンパイルエラーになって欲しいと妄想したコードに勝手に改変して
コンパイルが通ると主張して出してきたくだりはさっぱりわからんがw
>>438
https://i.imgur.com/T2Wmm9g.png
出るぞ
べつに型名スペルミスしててもusingなくても出るぞ
443デフォルトの名無しさん (アウアウウー Sac7-kTxa)
2018/11/07(水) 07:55:13.01ID:7FHAql48a >>385
ちょ待てよ
ちょ待てよ
444デフォルトの名無しさん (ドコグロ MM92-aMe6)
2018/11/07(水) 08:24:11.94ID:o5rBIXZlM445デフォルトの名無しさん (ワッチョイ 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ぽいという見方もできるし
一応、以下は煽りのつもりは無いんだけど
実は未だに混乱してるんだけどね 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から入った人
そこを飛ばす人間にとっては、”非同期処理を同期処理のように扱える”が逆に誤解を与える
多分初心者にとって誤解を与えるのは、
”非同期処理を同期処理のように扱える” わけではないと思う。
きちんと、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#なんか夢のまた夢だぞ
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なんて関係ないのにごっちゃにするから話がこじれる
右辺の型が違うんだから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まで勝手に面倒を見てしまうという妄想を
まるで仕様により勘違いを誘発されたかのように語るのはお門違いだな
基礎を疎かにしているのに最短距離だけ求める欲求が強すぎるて歪んでいる
async関数を書く立場と使う立場でごっちゃにし過ぎ
> var ret=TestAsync()の方が、普通の関数ぽいからこっちの方がboolぽいという見方もできるし
そんな見方はできないよ
関数を使う側は戻り値のシグニチャに従うだけだ
逆にawait式の戻り値がTaskじゃないのが直観的じゃない、と言うなら初心者視点に限って見ればまだ理解はできる
とは言え型推論のvarが非同期機能のawaitまで勝手に面倒を見てしまうという妄想を
まるで仕様により勘違いを誘発されたかのように語るのはお門違いだな
基礎を疎かにしているのに最短距離だけ求める欲求が強すぎるて歪んでいる
450デフォルトの名無しさん (オイコラミネオ MMe3-a/N+)
2018/11/07(水) 11:10:22.09ID:pVsScpvPM varはわざわざ型名書かなくて済むためのシュガーだと思うの
当然、型が自明か気にしなくて済むくらい明瞭なコードなら、可読性も満たす
書き方で型が変わるシチュで、
変数名もretにして混乱してたら本末転倒かと
当然、型が自明か気にしなくて済むくらい明瞭なコードなら、可読性も満たす
書き方で型が変わるシチュで、
変数名も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を被せる)
実行順序がコード通りとは限らないと言う意味では遅延評価も非同期か。
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とか。違いがわかりづらい
>>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の関係逆だった。
あ、asyncとawaitの>>=とreturnの関係逆だった。
459デフォルトの名無しさん (アウアウカー Sac3-U2lQ)
2018/11/07(水) 12:11:39.88ID:h4FWJh3Ka 要するにさ。
時間かかり過ぎる処理がUIスレッド占有するとプログラム上正常でもユーザーからは固まったように見えるから、非同期でUIスレッドから切り離してしまいましょうって機能でしょ?
asyncで別スレッドに切り離して、直後のコードで押したボタンとか無効化しておいて、答えが返ってきたら有効化する。みたいな。
(だからUIスレッドは他の操作もできるけど、await付きメソッドは(async部分以外は終わってるけど)async返るまで正式な終了では無い。みたいな。
んで、UI弄るのはUIスレッドのみって縛りを解決する為にSynchronizatrionContextがあると。
齧った限りはそんな理解。
時間かかり過ぎる処理が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に書いてるような落とし穴が分かりづらいのはその通りだしたぶん大方が同意するところ。
だから非同期メソッドは糞、と言いたいならそれはないんじゃないかと
まあ気持ちは分からんでもないけど、「非同期処理を同期処理のように扱える」なんて
宣伝してる人はいないよね。
大概の記事は「同期処理のように<書ける>」となってるんではないか。
違うかもしれないが、あなたは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+WEZ0464デフォルトの名無しさん (ワッチョイ 3eeb-ZA70)
2018/11/07(水) 16:08:24.07ID:RZxjCpbR0 C#に関しては特にそうだけど、QiitaとHatenaは検索から除外したほうが良いよ
465デフォルトの名無しさん (ワッチョイ 1ae3-aMe6)
2018/11/07(水) 18:02:56.35ID:Z88Q6V1f0466デフォルトの名無しさん (ワッチョイ 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英語版見に行けばほとんどのことは書かれていると思うよ
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つずつ増やしたいときってどうすればいいですか?
例えばクリックイベントが起こるたびに配列に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
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ファイルに変換したいのですが
どのような処理をすれば
行によって要素数が異なるこのデータ達を
変換できるでしょうか?
よろしくお願いします。
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){…}
のように
配列の要素数に応じてコード量が
多くなってしまいます。
他に処理の仕方はございますか?
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以外の場合はエラーになります
オブジェクト名.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:kamloJld0488デフォルトの名無しさん (ササクッテロル 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; }
}
}
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();
.
.
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);
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のタグの数に満たないためだと考えられます
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] でした
data[0]ではなく
xml[0] でした
493デフォルトの名無しさん (ササクッテロル Spcd-WqUE)
2018/11/10(土) 11:33:51.32ID:sUbsN3PYp >490
ご指摘ありがとうございます。
要素数が異なる配列を
xmlタグ要素に入れる処理の
ご指摘を頂けると幸いです。
読み込んだ1行のデータの配列の要素が異なる場合の処理はどのように書くのがスマートでしょうか?
ご指摘ありがとうございます。
要素数が異なる配列を
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の方も同じように書き出さないように出来ると思う
要素が足りない場合に、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
サルなの?
仕様も決めないでどうやるもこうやるもねぇよ
じゃあ、全部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);
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比較も使えずパースして比較する必要がありますよね
これって問題にならないんですか?
順序を保証したい場合は配列で囲って [{名前: 値}{名前: 値}] みたくすると思うんですが、
データ保存用途として見た場合使い難くないですかね?
シリアライズした時も処理系によって順序が保証されないから単純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したいって言うのは割とよくある要望
テキストだから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#に関係ないんだが
C#に関係ないんだが
505デフォルトの名無しさん (ワッチョイ d9e3-7vdd)
2018/11/10(土) 18:41:55.53ID:kamloJld0 俺もjsonはイマイチだと思う
要素があるのかないのかわからん
要素があるのかないのかわからん
506デフォルトの名無しさん (ラクッペ MM6d-0mwj)
2018/11/10(土) 18:45:43.38ID:jXgJ1KMYM507デフォルトの名無しさん (ブーイモ MM45-OD9P)
2018/11/10(土) 18:56:12.67ID:Y9Dl3F80M 自宅の壁にでも書いてろ
508デフォルトの名無しさん (ワッチョイ 8981-zc6X)
2018/11/10(土) 19:01:40.71ID:/crW2tCF0 c#とオブジェクト指向の勉強にオススメの本ありますか?
今まで組み込みのcばっかやってきたので、こっちの世界の定石みたいなものを身に付けたいのです
今まで組み込みのcばっかやってきたので、こっちの世界の定石みたいなものを身に付けたいのです
509デフォルトの名無しさん (アウアウウー Sa05-8u3a)
2018/11/10(土) 19:22:15.67ID:q+mWhUVWa >>508
1冊ならAdaptive Code C#実践開発手法
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]
エラーは配列が存在しないから出てるんじゃね
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してそれを戻しても問題ない?
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#はそれが起らないから問題ない
C#はそれが起らないから問題ない
517デフォルトの名無しさん (ササクッテロル Spcd-uQDt)
2018/11/12(月) 20:48:26.07ID:NInYtJ3Hp518デフォルトの名無しさん (ブーイモ 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する場合、そういう可能性がある。そのときにガベージコレクション
されて無くなってるってことない? 関数を抜けてるので。
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つもなくなった時
親関数が戻り値を受け取る事で新たに参照が出来るので、子関数が終了しても消えない
ガベージコレクションされる可能性があるのは関数を抜けた時ではなくそのオブジェクトへの参照が1つもなくなった時
親関数が戻り値を受け取る事で新たに参照が出来るので、子関数が終了しても消えない
524デフォルトの名無しさん (アウアウエー Sa23-ApEQ)
2018/11/12(月) 22:28:48.44ID:JxfhNlMua >>523
違う。それで済むならGCなどという大層な仕組みは必要なく、単なる参照カウンタで十分。
循環参照の場合は、オブジェクト参照まだ残っていてもGC対象となる必要がある。
正しくは、GCされる可能性があるのは、スタックまたはstaticフィールドから参照を辿れなくなったときだよ。
違う。それで済むならGCなどという大層な仕組みは必要なく、単なる参照カウンタで十分。
循環参照の場合は、オブジェクト参照まだ残っていてもGC対象となる必要がある。
正しくは、GCされる可能性があるのは、スタックまたはstaticフィールドから参照を辿れなくなったときだよ。
525デフォルトの名無しさん (アウアウカー Sa9d-Gc0T)
2018/11/12(月) 23:52:29.85ID:D6ILV7Jxa526デフォルトの名無しさん (アウアウエー Sa23-2y03)
2018/11/13(火) 00:05:00.82ID:1GLtCoZ4a527デフォルトの名無しさん (ワッチョイ 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レジスタとか決まってたりする。
そう、アセンブラレベルで見ると、戻り値はR0レジスタとか決まってたりする。
529デフォルトの名無しさん (アウアウエー Sa23-2y03)
2018/11/13(火) 00:44:34.29ID:1GLtCoZ4a >>528
そういう問題じゃないんですがw
そういう問題じゃないんですが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の方が分かりやすいと思うが、、
string Func <string> fncの方が分かりやすいと思うが、、
532デフォルトの名無しさん (アウアウカー Sa9d-Gc0T)
2018/11/13(火) 02:01:53.20ID:bZ0HXQ7Xa >>526
ポインタや参照返してたらC#もCも危険性変わらんよ。
ガベコレされるまで危険なのは同じ。
と言うかポインタは普通返さない。
void関数なりメソッドで入力用のポインタ(参照)と出力用のポインタ(参照)を引数に取る。
ポインタや参照返してたらC#もCも危険性変わらんよ。
ガベコレされるまで危険なのは同じ。
と言うかポインタは普通返さない。
void関数なりメソッドで入力用のポインタ(参照)と出力用のポインタ(参照)を引数に取る。
533デフォルトの名無しさん (ワッチョイ 93d2-GPPb)
2018/11/13(火) 02:06:18.61ID:kG9DLvmd0 >>531
そんな記法C#には存在しないし、入れ子の場合はどうすんのさ
そんな記法C#には存在しないし、入れ子の場合はどうすんのさ
534デフォルトの名無しさん (アウアウエー Sa23-2y03)
2018/11/13(火) 02:12:38.95ID:1GLtCoZ4a535デフォルトの名無しさん (アウアウカー Sa9d-Gc0T)
2018/11/13(火) 02:20:42.52ID:bZ0HXQ7Xa536デフォルトの名無しさん (アウアウエー Sa23-2y03)
2018/11/13(火) 02:24:11.95ID:1GLtCoZ4a だから、普通はそんなことしませんて...
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13118051728
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したオブジェクトはヒープに取られるんだから、スタックだって気にしなくていいぞ。
それじゃあ>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);
}
と言うふうに、出力用のポインタ引数用意する。
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━・~~
言ってること同じやん( ´Д`)y━・~~
540デフォルトの名無しさん (アウアウエー Sa23-2y03)
2018/11/13(火) 02:32:00.35ID:1GLtCoZ4a541デフォルトの名無しさん (アウアウエー Sa23-2y03)
2018/11/13(火) 02:34:25.29ID:1GLtCoZ4a542デフォルトの名無しさん (アウアウエー 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とかどっかいってる上に奇妙な文法増えちゃうよ
しかもローカル変数のアドレスを取得し返すコードもunsafeならビルドできる
返すものが抜けるスタックだと不正なのはレジスタも呼出規約も言語も関係ない
C++でもお行儀はともかく適切にdeleteすれば済むし、C#ならGCが回収するってだけ
>>531
戻り値たるintとかどっかいってる上に奇妙な文法増えちゃうよ
544デフォルトの名無しさん (アウアウカー Sa9d-Gc0T)
2018/11/13(火) 02:49:42.48ID:bZ0HXQ7Xa545デフォルトの名無しさん (スッップ Sdb3-RZyg)
2018/11/13(火) 07:44:20.95ID:4VfxC09pd ピクチャーボックスに書いた線の座標を配列にいてれおいて、右クリックの時に一つ前に書いた線を消したい時って再描画させるにはどうしたら出来ますか?
配列の最後を消して配列要素分ループして書いても書けず、前の書いた線が残りっぱなしでやり方が分かりません。
配列の最後を消して配列要素分ループして書いても書けず、前の書いた線が残りっぱなしでやり方が分かりません。
546デフォルトの名無しさん (ワッチョイ d9e3-Nrm4)
2018/11/13(火) 07:56:39.45ID:OewfmfIr0547デフォルトの名無しさん (スッップ Sdb3-RZyg)
2018/11/13(火) 09:19:44.70ID:4VfxC09pd548デフォルトの名無しさん (ワッチョイ 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は無効化されたら自動で背景色か背景画像で塗りつぶされるはず。
だから前に書いた線を消す必要はない
なんか、何回も同じようなこと聞いてない?
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:lNkjj0jra556デフォルトの名無しさん (ワッチョイ a5b3-aXY0)
2018/11/15(木) 12:59:29.31ID:0i/BmJkF0 今はテクスチャだから四角形プリミティブ重ねればいいのだけ。
557デフォルトの名無しさん (アウアウエー Sab2-mgxK)
2018/11/15(木) 13:22:50.19ID:lrjlJOeNa558デフォルトの名無しさん (アウアウカー Sa85-ZFLo)
2018/11/15(木) 13:23:12.34ID:lNkjj0jra Direct2Dとかだっけ。
触った事ないなぁ。。。
ペイントっぽいアプリとか程度だったら、どっちが楽なんだろ。。。
触った事ないなぁ。。。
ペイントっぽいアプリとか程度だったら、どっちが楽なんだろ。。。
559デフォルトの名無しさん (アウアウカー Sa85-ZFLo)
2018/11/15(木) 13:29:33.73ID:lNkjj0jra >>557
ううむ。そうか。
でもウィンドウが重なったらXOR以前に再描画するものが消えてるんだが。。。
確かに翁とか愛称ついてるあたり古い考えの人だった気もするが、当時でも有効だったなら
今では解像度はタブレット以下が多い割にメモリ積み放題だし、昔より手軽な割に有効だと思うんだが。。。
ううむ。そうか。
でもウィンドウが重なったらXOR以前に再描画するものが消えてるんだが。。。
確かに翁とか愛称ついてるあたり古い考えの人だった気もするが、当時でも有効だったなら
今では解像度はタブレット以下が多い割にメモリ積み放題だし、昔より手軽な割に有効だと思うんだが。。。
560デフォルトの名無しさん (アウアウカー Sa85-ZFLo)
2018/11/15(木) 13:33:22.82ID:lNkjj0jra561デフォルトの名無しさん (ワッチョイ 869a-2AkZ)
2018/11/15(木) 19:09:16.78ID:qi3FyInE0 画像描画の話題そのものはいいとしてコントロールの描画とImageプロパティへの描画と画面への描画の区別がついていない人がいる気がする
元の質問は「初期化しろ」で終わっているからどうでもいいんだろうけど
元の質問は「初期化しろ」で終わっているからどうでもいいんだろうけど
562デフォルトの名無しさん (ワッチョイ 3e67-sNvt)
2018/11/17(土) 17:07:48.79ID:eS8uuMhZ0563デフォルトの名無しさん (ワッチョイ 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#でなくてもいいし。
UIをブラウザにしたいならC#でなくてもいいし。
565デフォルトの名無しさん (アウアウエー Sab2-2qly)
2018/11/17(土) 17:37:36.65ID:rc62Vrp5a566デフォルトの名無しさん (ワッチョイ 3e67-sNvt)
2018/11/17(土) 17:55:07.29ID:eS8uuMhZ0 言語は何でもいいんですね
じゃあC#で頑張ってみます
フィボナッチなんとかでしたっけか
じゃあC#で頑張ってみます
フィボナッチなんとかでしたっけか
567デフォルトの名無しさん (アウアウイー Sa2d-4yv2)
2018/11/17(土) 17:58:49.17ID:bZFmP2aXa568デフォルトの名無しさん (アウアウエー Sab2-2qly)
2018/11/17(土) 18:03:29.40ID:rc62Vrp5a569デフォルトの名無しさん (ワッチョイ 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++は超難易度が高いと聞くのでどうなのかなと思ってました
cとかc++は超難易度が高いと聞くのでどうなのかなと思ってました
572デフォルトの名無しさん (ブーイモ MMf1-2qly)
2018/11/17(土) 18:31:24.61ID:/a1P+H3qM C#ならUnity3D使えばいい
できるどころではなく、現代において3Dプログラミングをするなら最も初心者が入りやすい選択だ
できるどころではなく、現代において3Dプログラミングをするなら最も初心者が入りやすい選択だ
573デフォルトの名無しさん (ワッチョイ cd8a-9Fzi)
2018/11/17(土) 18:38:39.23ID:tg8QC7+S0 >>571
最近は知らないけどあくまでC/C++用ライブラリのラッパーがあるだけだから
変なところでつまづく可能性あるのがつまんないじゃん
実装が中途半端だったりするのもあるから
webに転がってるサンプルがそのまま動いた方が楽やろ
C/C++は深みはまれば無限の闇だけどシンプルに使う分にはなにも難しくない
だって大半のプログラマはCから入ってるんだし
Unityは全く知らんからその辺は別の人に
最近は知らないけどあくまでC/C++用ライブラリのラッパーがあるだけだから
変なところでつまづく可能性あるのがつまんないじゃん
実装が中途半端だったりするのもあるから
webに転がってるサンプルがそのまま動いた方が楽やろ
C/C++は深みはまれば無限の闇だけどシンプルに使う分にはなにも難しくない
だって大半のプログラマはCから入ってるんだし
Unityは全く知らんからその辺は別の人に
574デフォルトの名無しさん (ワッチョイ 3e67-sNvt)
2018/11/17(土) 18:41:57.34ID:eS8uuMhZ0575デフォルトの名無しさん (アウアウウー Sa91-OesL)
2018/11/18(日) 10:42:50.75ID:PoFSPoaKa asp.net core 2.1 MVCの検証属性
Javaだと検証属性にgroupsを設定できるのだがasp.net coreには同等の機能は存在しない?
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とか使えば
諦めてFluent Validationとか使えば
579デフォルトの名無しさん (ワッチョイ ca8a-sEjg)
2018/11/19(月) 05:43:43.79ID:r5HrKoSb0 コーディングしてて思うけど変数名とかつけるのがめちゃ難しい
dataとかinfoとか抽象的で何を指してるのかわからんようにならないように
意を示すような単語を探したいが探しきれない
csvファイルを読み込んだバイナリデータを受けとる変数名とかstreamって名前にすべきなのか?
dataとかinfoとか抽象的で何を指してるのかわからんようにならないように
意を示すような単語を探したいが探しきれない
csvファイルを読み込んだバイナリデータを受けとる変数名とかstreamって名前にすべきなのか?
580デフォルトの名無しさん (ドコグロ MM72-rrJU)
2018/11/19(月) 07:18:33.39ID:bSg94FGhM >>579
日本語のカタカナのアルファベット表記でよい
お前の脳みそがなんの辞書も持ち合わせていない雑魚だった場合
全クラスの全変数の数分その都度エキサイト翻訳にかける工数が必要になる
1000個以上あればもちろん1000回以上だ
つまり、雑魚なお前はそのくだらん作業で工数の大半を食い潰す
日本語アルファベット表記で妥協しろ
日本語のカタカナのアルファベット表記でよい
お前の脳みそがなんの辞書も持ち合わせていない雑魚だった場合
全クラスの全変数の数分その都度エキサイト翻訳にかける工数が必要になる
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
https://github.com/dotnet/corefx/issues/33553
585デフォルトの名無しさん (ブーイモ MMea-2qly)
2018/11/19(月) 09:13:29.97ID:E9Vggb2iM 名前以前にそもそもパブリックメンバにタプル使うなってガイドラインがあったはずだけど、もうMS自身が破って解禁されちゃうのか
引数のデフォルト値なんかも当初はパブリックメンバには禁止だったはずだけどMSが平然と無視し始めて完全に形骸化したね
引数のデフォルト値なんかも当初はパブリックメンバには禁止だったはずだけどMSが平然と無視し始めて完全に形骸化したね
586デフォルトの名無しさん (ワッチョイ d623-l2vd)
2018/11/19(月) 09:33:40.04ID:KXf7P7MS0 >>585
TupleとValueTuple混同してないか?
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.
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とか
必要もないのに冗長な名前を付けることはないけど
必要ならたとえローカルでも長い名前を付けることを躊躇してはいけないと個人的には思う
自分で書いているように抽象的な名前であることが可読的でない原因。
そうであればベタベタに具体的な名前を付ければいいでしょう
例えばアップルの株価なら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あたりをよく使う
スコープ短い汎用的な変数名なら
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:eViuowHop600デフォルトの名無しさん (スプッッ 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型だと思ってしまう
>csvファイルを読み込んだバイナリデータを受けとる変数
はstring配列やbyte配列だと思うけど
固有の型へすぐ変換するだろうから、その短い間ならdataなどでいいんじゃないか
個人的にはstreamという変数名ではSystem.IO.Stream型だと思ってしまう
602デフォルトの名無しさん (ブーイモ MMea-LcRh)
2018/11/19(月) 20:04:15.35ID:JjCiYhkEM >>591
当然だろ。プロジェクトを示す3桁のアルファベットと5桁の数字で構成される変数名しか使えない。
当然だろ。プロジェクトを示す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
ちなVS2010
610デフォルトの名無しさん (ワッチョイ 59c3-aXY0)
2018/11/20(火) 07:57:26.72ID:kdpbOy6R0 new deleteの呪縛から解放されたと思ったのもつかの間、
今度は簡略化し過ぎて気づかないopen closeの罠が沢山散りばめられたw
今度は簡略化し過ぎて気づかないopen closeの罠が沢山散りばめられたw
611デフォルトの名無しさん (ワントンキン MM5a-fJZ0)
2018/11/20(火) 19:25:54.22ID:oZWGPYxPM >>609
ctrl+h
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信者
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/nMfDs0617デフォルトの名無しさん (ワッチョイ 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つのファイルにまとめます?
なんかファイルが多いと読みにくくなるような気もするし
分かれてる方が分かりやすいって人もいるのかな?
皆さんどうしてます?
短いクラスがいくつかあるとき1つのファイルにまとめます?
なんかファイルが多いと読みにくくなるような気もするし
分かれてる方が分かりやすいって人もいるのかな?
624デフォルトの名無しさん (スプッッ Sd1f-7YUd)
2018/11/23(金) 09:37:27.77ID:Z6RMu5t9d >>622
ありがとうございます
ありがとうございます
625デフォルトの名無しさん (ワッチョイ ffd2-nmhv)
2018/11/23(金) 09:41:35.57ID:w9GMx5b20626デフォルトの名無しさん (ワッチョイ cf81-xbeM)
2018/11/23(金) 09:43:27.05ID:OqByd5h70 >>623
基本的にはフォルダ分別だけど、json受信用とかのフィールド定義だけなら1ファイルにまとめちゃうかな。可読性が上がる。
基本的にはフォルダ分別だけど、json受信用とかのフィールド定義だけなら1ファイルにまとめちゃうかな。可読性が上がる。
627デフォルトの名無しさん (アウアウエー Sadf-4vBw)
2018/11/23(金) 10:04:34.96ID:o5J4ZB2+a628デフォルトの名無しさん (ワッチョイ 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での見積もりはわかるが、ファイル数ってのは初めて聞いた
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ってわかるかい?
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
コメント以外だって増やせるよね?そんなとこ気にすんの?w
641デフォルトの名無しさん (スップ Sd1f-nmhv)
2018/11/23(金) 18:06:39.95ID:X4mqBgACd642デフォルトの名無しさん (ワッチョイ ff7f-wvC2)
2018/11/23(金) 18:11:36.90ID:t3Fo6DVq0 >>641
usingもnamespaceも使わないの?
どんな小さなclassだってそれなりの規模の中に入れればそれなりの行数消費する
class辺りの最低行数を上げれば見積もりだってあがるだろ?
こんな細かく説明必要なの?こんなどうでもいい内容で?
usingもnamespaceも使わないの?
どんな小さなclassだってそれなりの規模の中に入れればそれなりの行数消費する
class辺りの最低行数を上げれば見積もりだってあがるだろ?
こんな細かく説明必要なの?こんなどうでもいい内容で?
643デフォルトの名無しさん (スップ Sd1f-nmhv)
2018/11/23(金) 18:16:17.28ID:X4mqBgACd >>642
usingやnamespaceごときが見積もりに有意な影響を与えるようなプロジェクトなんかやったことなくてごめんね
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毎に好き勝手にやると一貫性がなくなる
といったところかな
とはいえ結合の強いクラスとかパラメーター系のクラスは一緒にするけども
そのほうがSCM上扱いやすい
ファイル一覧からクラス探しやすい
conflictマージが楽
プロジェクトチーム内でPG毎に好き勝手にやると一貫性がなくなる
といったところかな
とはいえ結合の強いクラスとかパラメーター系のクラスは一緒にするけども
647デフォルトの名無しさん (ドコグロ MM1f-I6zH)
2018/11/23(金) 19:26:33.26ID:EY7/YwthM >>646
> そのほうがSCM上扱いやすい
理由が書いてない
> ファイル一覧からクラス探しやすい
IDE使ってないのか?
> conflictマージが楽
変わらんと思う
> プロジェクトチーム内でPG毎に好き勝手にやると一貫性がなくなる
予め決めればいいだけじゃないの?
> そのほうがSCM上扱いやすい
理由が書いてない
> ファイル一覧からクラス探しやすい
IDE使ってないのか?
> conflictマージが楽
変わらんと思う
> プロジェクトチーム内でPG毎に好き勝手にやると一貫性がなくなる
予め決めればいいだけじゃないの?
648デフォルトの名無しさん (ワッチョイ 6f7f-NVvz)
2018/11/23(金) 19:35:28.46ID:+XjaJ0Hq0 >>647
じゃあ1ファイルにする合理的な理由はなに?
じゃあ1ファイルにする合理的な理由はなに?
649デフォルトの名無しさん (ワッチョイ ffb3-I6zH)
2018/11/23(金) 19:43:31.36ID:4Tv+Pn+t0650デフォルトの名無しさん (ワッチョイ ff7f-wvC2)
2018/11/23(金) 20:38:29.58ID:t3Fo6DVq0 そもそもコード量で見積もりするようなプロジェクトやったことないけど
namespaceやusingって独自でフレームワークレベルまで全部構築するような大きい案件のほうが無駄に行数稼げそうだなーって感覚
そもそも見積もり上での影響の大きさなんか話題になってないよね
どうでもいい糞ルールで売上1%あがりましたー、みたいな話じゃん
広い世の中、そんな案件もあるんじゃないかなー?って思っただけでなんでこんな噛みつかれるんだ?
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
それJavaじゃね?C#ならnested class
653デフォルトの名無しさん (ワッチョイ ffb3-I6zH)
2018/11/24(土) 08:38:33.58ID:kuH8s62I0 ちゃんとした名称知ってる俺スゲーってか?
そこまでしてマウント取りたいものかね w
そこまでしてマウント取りたいものかね 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屋さんいらっしゃい
Java屋さんいらっしゃい
658デフォルトの名無しさん (ワッチョイ cf81-xbeM)
2018/11/24(土) 13:19:32.37ID:QDlc1GIX0659デフォルトの名無しさん (ブーイモ MMe7-4vBw)
2018/11/24(土) 13:30:59.43ID:vw8dRG/XM660デフォルトの名無しさん (ワッチョイ 231e-nwd5)
2018/11/24(土) 13:34:12.99ID:MaS7Khub0 https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/nested-types
nested typeまたはinnerともかいてあるね
nested typeまたはinnerともかいてあるね
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:kuH8s62I0664デフォルトの名無しさん (ワッチョイ ffd2-nmhv)
2018/11/24(土) 15:09:18.13ID:WtZSNTCR0 >>658
お前検索してないやろw
お前検索してないやろw
665デフォルトの名無しさん (ワッチョイ d39a-3+6q)
2018/11/24(土) 15:13:42.72ID:nuCJ8Tz/0 間違ったことに突っ込み入れて訂正して「マウンティング」とか無いわ
違ったこと言い続けるアホならともかくこの件は>>660で終わっているし
違ったこと言い続けるアホならともかくこの件は>>660で終わっているし
666デフォルトの名無しさん (ワッチョイ 231e-nwd5)
2018/11/24(土) 15:24:23.92ID:MaS7Khub0667デフォルトの名無しさん (ワッチョイ c336-CvEX)
2018/11/24(土) 15:50:14.83ID:X9wbQk6q0 初心者向けC#のサイトでGUIプログラムの例があったので入力してみました。
しかし
using System.Windows.Controls;
でコンパイルエラーになります。 Controlsなんてネーヨ!エラーです。
正しくは、どこでしょうか?
ちなみに環境なんですがubuntu16で、MonoDeveloperを使っております。
しかし
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で参照を追加する方法は俺には分からない
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:IUSP2F7UM670デフォルトの名無しさん (ワッチョイ 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
他人の満足とか他人の心配より自分の馬鹿な頭心配しとけよw
674デフォルトの名無しさん (ワッチョイ ff9b-ZAsc)
2018/11/24(土) 16:59:12.41ID:ntzumrir0 2点ほど、
pictureboxに書いた線やらマルやらを書き終えたらボタンを押しもう書けないようにロックするにはどうしたらいいですか?
フォーム2で書いたpictureboxの絵をボタン投下時にフォーム1に同じ絵をコピーしたい場合はどうしたらいいですか?
pictureboxに書いた線やらマルやらを書き終えたらボタンを押しもう書けないようにロックするにはどうしたらいいですか?
フォーム2で書いたpictureboxの絵をボタン投下時にフォーム1に同じ絵をコピーしたい場合はどうしたらいいですか?
675デフォルトの名無しさん (ワッチョイ ffb3-I6zH)
2018/11/24(土) 17:04:30.23ID:kuH8s62I0 >>673
お前の日本語理解力が心配だよ w
お前の日本語理解力が心配だよ 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ならこれは使えないけど
最初のは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:SHV38fMb0678デフォルトの名無しさん (ワッチョイ ffb3-I6zH)
2018/11/24(土) 18:03:02.82ID:kuH8s62I0679デフォルトの名無しさん (ワッチョイ 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#相談室に移動して下さい。
>なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
681デフォルトの名無しさん (ワッチョイ ffb3-I6zH)
2018/11/24(土) 18:55:03.96ID:kuH8s62I0682デフォルトの名無しさん (ワッチョイ 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のチェック外すと描画中止
>>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#を打てるなんちゃらスタジオがあれば大丈夫でしょうか
とりあえず初心者向けの参考書とc#を打てるなんちゃらスタジオがあれば大丈夫でしょうか
685デフォルトの名無しさん (ワッチョイ cf81-pqc8)
2018/11/26(月) 11:21:34.31ID:SVaivieI0 >>684
自分に合った参考書やサイトを見て勉強しながら
VisualStudioで試行錯誤しながらやっていくしかない
自分の周りにC#について教えてくれる人がいるなら
どんどん聞いて吸収していくのが一番いい
とにかくサンプルコードを打ち込んだりしながら
想像力を働かせて覚えていくしかないよ
そのうち視界が開けて来て作りたいものが作れるようになる
作れるようになったらまず、簡単なものからにするべき
いきなり難しいものを作ろうとすると潰れるよ(天才なら別だが)
アラーム時計やカレンダーや画像ビューアあたりから始めるのがいいと思う
自分に合った参考書やサイトを見て勉強しながら
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アプリにするべきなのでしょうか
ひらがなモード、半角英数モードをコンソールアプリ側で切り替えたいと思い色々ググって試してみたところ、うんともすんとも行きません
大人しくFormアプリにするべきなのでしょうか
688デフォルトの名無しさん (ワッチョイ 238a-J8rx)
2018/11/28(水) 03:51:20.87ID:W51sdDs/0 簡易HttpServerを作りたいのですが、以下のコードを実行してアクセスすると、"GET"が2回コンソール出力されます。
クライアントからのGETは1回しか受信していないと思うのですが、何故でしょうか。
https://ideone.com/Nr02QL
クライアントからの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確認した?
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/0694デフォルトの名無しさん (スフッ 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でも動かせるし、併用でフル実行させるとやりきった感半端ない)とか今なら色々あるよ
劇的に効果あるなら
マルチタスクにしてもいいし、GPGPUとか、openCL(作り方によればCPUでもGPUでも動かせるし、併用でフル実行させるとやりきった感半端ない)とか今なら色々あるよ
696デフォルトの名無しさん (ブーイモ MM27-iCMB)
2018/11/28(水) 13:26:20.94ID:cyvzVFzDM >>692
まずはアルゴリズムの改良を検討する
スクリプト言語だとCPUバウンドな処理はC++に比べて数桁遅いから、
許容範囲の処理時間を達成するためにはスクリプトのままアルゴリズムの改良を頑張るよりもC++で力技の方が結果的に早い(速い、ではない)ことも多い
一方C#はせいぜいC++の数倍のオーダーであり、その程度ならアルゴリズムの改良によって簡単に逆転する
まずはアルゴリズムの改良を検討する
スクリプト言語だと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
取得したハンドルを子プロセスへ継承することを許可するかどうかを決定する。
個プロセスへの継承とはどういう意味なのでしょうか
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だな
セキュリティ記述子の話をすると、所有者セキュリティ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で書いた情報の保存方法はどうしたらいいと思いますか?座標点の他にどんな情報があったらいいですかね?
もう一回表示したい時とか
@データ番号入力(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に変換しても良いし、描画履歴の情報を保存しても良い。
何がしたいかによるとしか
保存するときは、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認証などの他の認証方法に依存することです。
回答になってないな…。
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
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を再構築可能な情報をキャッシュするようにするとか
本当はこういうプロパティーの実装はよくないみたいだけど(ゲッターの返す値が毎回別のオブジェクトになるから)
別のオブジェクトが同じ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する形にするしかないってことですかね?
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プロパティがどうやっているか追っかけて確認してみるとか
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:gtVMbwTAd712デフォルトの名無しさん (アウアウエー 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を使わないとダメだろうな
ってことが聞きたいんじゃね?
ループポイントいじったり波形まで触るような凝った再生するなら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:lmmOnpkX0721デフォルトの名無しさん (スププ Sdba-aHfj)
2018/11/30(金) 22:17:19.14ID:n5lF99wkd 天才あざす
>>717
wav ファイルの波形パターンを取り出してプログラムで適当に加工したあと win32api に渡すと音がなる、とかできるのでしょうか?API関数名はなんですか?
wav ファイルの波形パターンを取り出してプログラムで適当に加工したあと win32api に渡すと音がなる、とかできるのでしょうか?API関数名はなんですか?
723デフォルトの名無しさん (ワッチョイ b7e3-Xv+l)
2018/11/30(金) 23:27:45.95ID:t8hABf910725デフォルトの名無しさん (スププ 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を使う処理;});
}
こんな風に変数の置き換えをしなきゃいけないのを処理する
なんか別のカッコいい方法ってありますか?
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:ueqzOD9Qa728デフォルトの名無しさん (ワッチョイ b7e3-Xv+l)
2018/12/01(土) 16:54:24.01ID:UFOjA6r40729デフォルトの名無しさん (ワッチョイ a7c3-lzSb)
2018/12/01(土) 17:01:29.48ID:6nS7jmt50 >>726
Parallel.Forじゃ駄目?
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以降)
残念ながら君より質問者のほうが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[]ってなに?
{
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[]の省略形
型は{}の初期化部から推論してる
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:6nS7jmt50736デフォルトの名無しさん (ワッチョイ 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));
}
}
}
なんか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:IDJAnGVn0740デフォルトの名無しさん (ワッチョイ 0eeb-hzet)
2018/12/01(土) 21:00:00.35ID:4Hpcan/K0 ありがとう!なんで10になるのかはわかったよ
ただ次になぜ10が10個並んじゃわないのかが全然わかんなくなってきたぜ・・・・
ただ次になぜ10が10個並んじゃわないのかが全然わかんなくなってきたぜ・・・・
741デフォルトの名無しさん (ワッチョイ b676-xVue)
2018/12/01(土) 21:02:51.31ID:IDJAnGVn0 >>740
forループの実行中にTaskが開始されてるからでしょ
forループの実行中にTaskが開始されてるからでしょ
742デフォルトの名無しさん (ワッチョイ 0eeb-hzet)
2018/12/01(土) 22:13:11.50ID:4Hpcan/K0 >>741
forループ中にTaskが開始されるとなぜ1つになっちゃうのか全然わからなんだ・・・・
forループ中にTaskが開始されるとなぜ1つになっちゃうのか全然わからなんだ・・・・
743デフォルトの名無しさん (ワッチョイ 8a7e-o5Pc)
2018/12/01(土) 22:53:47.54ID:THW+jwSM0 メインスレッドが即座に終了して出力なしの方がザラだと思うが
明示的に待たないとTaskの完了など知った事ではないよ
というか徒に増やした所でメモリ帯域とかで躓くのがオチ
Taskは非同期だし、並列実行が望みならGPGPUなりを…
明示的に待たないと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だけは必ずタスクの起動順が順番通りで揃うんですね
ちょっとこれを使ってみます
ありがとうございました。いい方法あったんですね
そろい踏みで
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); } }
でないとおかしい。
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:q6i9ekrsM749デフォルトの名無しさん (ワッチョイ 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:BBiFvNwv0752デフォルトの名無しさん (ワッチョイ 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();
}
}
みたいに勝手にクラス化されて変数が内部でフィールド扱いになるって理解でいい?
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:uCltPpgZa757デフォルトの名無しさん (ワッチョイ 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できないようにしたいですがどうすればいいでしょうか?
また他プロセスからのメモリ改竄はどのように対策をすればいいでしょうか?
staticなclassに機密情報を保持してプロジェクト内のすべてのコードから参照して利用できるようにしたいです
その場合、改竄を防ぐために決められた場所(コード)からしかsetできないようにしたいですがどうすればいいでしょうか?
また他プロセスからのメモリ改竄はどのように対策をすればいいでしょうか?
761デフォルトの名無しさん (オッペケ Sr3b-eb2q)
2018/12/02(日) 15:25:34.83ID:8Z0+kDxur >>760
c#アプリに機密情報なんか書き込むな
c#アプリに機密情報なんか書き込むな
762デフォルトの名無しさん (ワッチョイ 4b9f-GnKV)
2018/12/02(日) 15:26:44.53ID:1mt10vUo0763デフォルトの名無しさん (ワッチョイ a7c3-lzSb)
2018/12/02(日) 15:45:30.50ID:XLvYoqNs0 >>760
他プロセスからの保護は、System.Security.Cryptographyの
ProtectedMemory.Protect()でMemoryProtectionScope.SameProcessを指定するとかかな
他プロセスからの保護は、System.Security.Cryptographyの
ProtectedMemory.Protect()でMemoryProtectionScope.SameProcessを指定するとかかな
764デフォルトの名無しさん (ワッチョイ 4b9f-GnKV)
2018/12/02(日) 15:49:14.43ID:1mt10vUo0765デフォルトの名無しさん (ワッチョイ a7c3-lzSb)
2018/12/02(日) 15:55:25.15ID:XLvYoqNs0 特定の呼び出し元からのみ設定に関しては、StackTraceで呼び出し元を確認かな。
Caller Infoだと微妙か。
Caller Infoだと微妙か。
766デフォルトの名無しさん (ワッチョイ dbb8-C0zt)
2018/12/02(日) 15:55:38.27ID:yai2DppL0 メモリを直接書き換えてくるような攻撃だとアクセス修飾子なんて一切関係なく書き換えられるし、そもそもその後のif文自体を書き換えたりとかしてくるから一定レベル以上の攻撃は防げない
とりあえずxor暗号程度で保持しとくとかは?
get => 機密情報 ^ 0x01234567;
set => 機密情報 = value ^ 0x01234567;
とりあえずxor暗号程度で保持しとくとかは?
get => 機密情報 ^ 0x01234567;
set => 機密情報 = value ^ 0x01234567;
767デフォルトの名無しさん (アウアウエー Sa52-70Pl)
2018/12/02(日) 15:57:52.77ID:uCltPpgZa >>760
前者はセッターをinternalにするのが一番素直で分かりやすいと思う
前者はセッターをinternalにするのが一番素直で分かりやすいと思う
768デフォルトの名無しさん (ワッチョイ 4b9f-GnKV)
2018/12/02(日) 16:00:32.72ID:1mt10vUo0769デフォルトの名無しさん (ワッチョイ 23da-UzSb)
2018/12/02(日) 16:23:19.21ID:3wF0RuQO0 >>767
アクセス修飾子での制限はリフレクションで簡単に突破される
アクセス修飾子での制限はリフレクションで簡単に突破される
770デフォルトの名無しさん (アウアウエー Sa52-70Pl)
2018/12/02(日) 17:32:37.60ID:uCltPpgZa771デフォルトの名無しさん (オッペケ Sr3b-eb2q)
2018/12/02(日) 17:55:56.69ID:8Z0+kDxur そもそもお漏らししてもいい案件だけやる
772デフォルトの名無しさん (ワッチョイ 23da-UzSb)
2018/12/02(日) 18:07:52.27ID:3wF0RuQO0773デフォルトの名無しさん (ワッチョイ 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:7GT4duU30780デフォルトの名無しさん (スププ 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するのにクラス名の
引数が必要になるので共通化できない。こういう場合どうしたらいいの?
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) {...}
ちょっと何言ってるのかよく分からないところがあるので
勘違いかもしれないけど、普通にジェネリックメソッドにするだけじゃないの?
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を同時にやるってどうやるの?
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を使えと警告が出るので置き換えようとしてみたところ、対応する方法が見つかりませんでした。
ご存知の方いないでしょうか。
System.Webは古いからSystem.Net.Mailを使えと警告が出るので置き換えようとしてみたところ、対応する方法が見つかりませんでした。
ご存知の方いないでしょうか。
788デフォルトの名無しさん (ワッチョイ b39d-hzet)
2018/12/03(月) 18:01:20.51ID:1qcFF+t30 >>786
自己解決:Interfaseやめてジェネリックのクラス使えばできました。
自己解決:Interfaseやめてジェネリックのクラス使えばできました。
789デフォルトの名無しさん (ワッチョイ b39d-hzet)
2018/12/03(月) 21:15:19.45ID:1qcFF+t30 別のプロジェクトからCopy してきた Form1をNameSpace名をこのプロジェクトに
あわせて
var fm = new Form1();
fm.ShowDialg();
とやっても、空のフォームが立ち上がる。なぜなんだろう?
あわせて
var fm = new Form1();
fm.ShowDialg();
とやっても、空のフォームが立ち上がる。なぜなんだろう?
790デフォルトの名無しさん (アウアウエー Sa52-70Pl)
2018/12/03(月) 22:08:22.85ID:jwp068Q1a791デフォルトの名無しさん (ワッチョイ a7c3-lzSb)
2018/12/03(月) 22:10:11.00ID:yskaDDV40792デフォルトの名無しさん (ワッチョイ b39d-hzet)
2018/12/04(火) 04:22:30.94ID:16QpsEK/0793デフォルトの名無しさん (ワッチョイ 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の中にあるので困る。
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;
}
}
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)は変わらないようにしたいのだけど
どのプロパティで設定できるのでしょうか
最大化させても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
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のような質問をしてるレベルならまず無理だが
>>798のような質問をしてるレベルならまず無理だが
802デフォルトの名無しさん (アウアウエー Sa52-70Pl)
2018/12/04(火) 23:34:36.38ID:S3l73Gw8a >>798
円や直線みたいな単純な図形でアンチエイリアスとかも不要なら
確かVBer向けのシェイプコントロールってのがあったはずだから、それを使えば一発だね
http://www.atmarkit.co.jp/fdotnet/dotnettips/781winlineshape/winlineshape.html
描画するんじゃなくて子コントロールを加える形になると思うけど
円や直線みたいな単純な図形でアンチエイリアスとかも不要なら
確か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に対して与えている
基本的にシングルトンはアンチパターンであり、使うべきではないと考えておけばいい
グローバル変数を作る目的でシングルトンにするくらいなら、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:24zuz0jWa810デフォルトの名無しさん (ワッチョイ 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:PXx1OaoO0815デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
2018/12/06(木) 23:07:45.72ID:LqRlvnk/0 リフレションとかバカしか使わないわ
816デフォルトの名無しさん (ワッチョイ d9e3-k/Y9)
2018/12/06(木) 23:24:16.18ID:8fboZWCH0 デバッグ用に良さそうと思ってたら
winformにそのものがあるしね
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を内包するようにする
コレはシロウトでなければ常識の問題だからな
よほどの理由がないかぎり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だったとする
俺からお前を殴るかもしれんし
お前から俺を殴るかもしれん
どちらにしろ
お前はすでに死んでいる
> 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 おじさんはこれを思い出した
https://youtu.be/YLhuSYTySVM
https://youtu.be/YLhuSYTySVM
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が上記しかないので、どうしようもない状態です。
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:2afnIVVGa835デフォルトの名無しさん (スッップ Sdb3-2OAS)
2018/12/07(金) 08:55:42.95ID:CXp+sqegd ああdllの話かw
こないだNuGet知らないやつがいて驚いたわ
こないだ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やらないと駄目だけどね
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について詳しく
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
ただし、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ビット)
あんたのアプリケーション.exe
[x64]
SqliteInterop.dll(64ビット)
[x86]
SqliteInterop.dll(32ビット)
842デフォルトの名無しさん (ワッチョイ 9306-n9Ol)
2018/12/07(金) 19:36:33.84ID:0Ncculaf0843デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
2018/12/07(金) 21:14:47.96ID:0/x3pMw+0 やっぱりバカはいまだにうるう秒がどういうもんなのかすら分かってない
低学歴っていちいち低学歴を自白するからな
そして低学歴の知ったかドイチェ語
すぐに分かるのが恐ろしいわ。。。
低学歴っていちいち低学歴を自白するからな
そして低学歴の知ったかドイチェ語
すぐに分かるのが恐ろしいわ。。。
844デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
2018/12/07(金) 21:21:23.93ID:0/x3pMw+0845デフォルトの名無しさん (スフッ 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&&……で一個ずつ作るしかないですか
ifの条件に配列を使いたいとき、例えば
if( 配列[ ]=={1,2,3,4} )
みたいにやるにはどうするのが一番簡単ですかね
配列[0]==1&&……で一個ずつ作るしかないですか
860デフォルトの名無しさん (ワッチョイ 2b81-rIoR)
2018/12/08(土) 16:42:23.72ID:BPUiFCQU0861デフォルトの名無しさん (スフッ Sdb3-2OAS)
2018/12/08(土) 16:59:12.00ID:w7bOiw+rd862デフォルトの名無しさん (ワッチョイ 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
「一番簡単」が何を求めているのかわからないが、比較するものの数が決まっているのなら「配列[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+wHRo0870デフォルトの名無しさん (アウアウエー 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は有難みが薄いかもしれない
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はないみたいだけど、人が書いたコード読む際にこれはなんか値取ってきてるなとか何か計算しにいってるなとか一目で分かるには慣れるしかないですかね?
あとcallはないみたいだけど、人が書いたコード読む際にこれはなんか値取ってきてるなとか何か計算しにいってるなとか一目で分かるには慣れるしかないですかね?
872デフォルトの名無しさん (ワッチョイ 01d2-WxAZ)
2018/12/09(日) 02:03:01.52ID:bhezjmzk0 〇〇 = 戻り値 は return 戻り値; じゃね。
Call は戻り値とかではなくて戻り値のない関数(Sub)を呼ぶときに引数の部分を () でくくりたい場合に使うものではなかったっけか。
戻り値を受け取るかは呼ぶ側で 変数 = 呼ぶ関数(); になってれば受け取るんだろうし、
呼ばれる側が戻り値を用意してるかどうかは呼ばれる側の関数の(戻り値の)定義が void になってれば返さないんだろうしってことじゃダメなん?
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が非推奨
現代のVBではCallを明示的に書くのはMSが非推奨
875デフォルトの名無しさん (ワッチョイ 139d-r7dA)
2018/12/09(日) 11:46:59.00ID:YUuZNzEz0 >>874
MSが公式にそう言ってるのか?ソースはどこ?
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.
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:qjppHIrra879デフォルトの名無しさん (アウアウエー Sa23-M/db)
2018/12/09(日) 12:31:52.14ID:qjppHIrra C#でも自分のメンバー呼び出しにthis付けないと気が済まない人がいるけど、
あれはVBから来た人なのかねw
Call付けたい心理とたぶん同じだよな
あれは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:qjppHIrra883デフォルトの名無しさん (ブーイモ MMb3-PCBP)
2018/12/09(日) 13:02:30.07ID:G5eD25r9M >>878
いや呼び出しが識別子で始まらない場合って書いてあるでしょ
サンプルコードにあるように、New Hoge.Method() とか、ラムダ式を即時呼び出しするケース
これは純粋に構文解析上の制限だろう
いや呼び出しが識別子で始まらない場合って書いてあるでしょ
サンプルコードにあるように、New Hoge.Method() とか、ラムダ式を即時呼び出しするケース
これは純粋に構文解析上の制限だろう
884デフォルトの名無しさん (アウアウエー Sa23-PCBP)
2018/12/09(日) 13:13:46.66ID:QJ+QHutHa BASIC系ではステートメントは原則的にステートメント種別を示すキーワードで始まらなければならず、式が単独でステートメントになることはできない
これは構文解析を楽にするための制限で、大昔の言語ではわりと一般的なスタイルだ
ただ、さすがにそれは不便だということで、識別子から始まる式については例外的に単独でステートメントになることができる
>>876のサンプルコードにあるようなケースでは四季がステートメントと見做されないから、例外的にCallが必須になるということだね
これは構文解析を楽にするための制限で、大昔の言語ではわりと一般的なスタイルだ
ただ、さすがにそれは不便だということで、識別子から始まる式については例外的に単独でステートメントになることができる
>>876のサンプルコードにあるようなケースでは四季がステートメントと見做されないから、例外的にCallが必須になるということだね
885デフォルトの名無しさん (アウアウエー Sa23-M/db)
2018/12/09(日) 13:16:52.52ID:qjppHIrra >>883
ああ、なるほどそうだねごめんw
MSDNの記事読んでなかったよw
VBは
(New TheClass()).ShowText()
と書けないのか。ダメな理屈がよくわからんなあ
ラムダ式の即時呼び出しは便利そうだね。
必要になった記憶はないし、戻り値を握りつぶすんじゃ相談室の方の661の
質問みたいなことはできないが
ああ、なるほどそうだねごめん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じゃなくて?
MSDN? docsじゃなくて?
889デフォルトの名無しさん (ワッチョイ 5b93-Hr0L)
2018/12/09(日) 14:54:32.29ID:3jtGHyYw0 >>878
vbではfncHogeの戻り値を設定するのに
return 1
fncHoge = 1
のどちらの書き方もできたねん
関数の中で、関数名を変数名として使えた
再帰処理なんか考えたら
パっと見紛らわしくて
可読性に問題あるけどね
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はこれを言ってたのか
あー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#で判定する方法ってありますか?
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 "キャンセル押したね?"
という風に空文字列と区別とできるのでそれをやりたいの
r = Inputbox("何か値を入れてね")
if IsEmpty(r) then MsgBox "キャンセル押したね?"
という風に空文字列と区別とできるのでそれをやりたいの
893デフォルトの名無しさん (ワッチョイ abeb-3M3s)
2018/12/09(日) 17:42:09.39ID:vv5ogZC30 初心者用スレッドは学習者のためにあるべきだろう
進歩のないVBコピペプログラマーのためにコードを代わりに書いてあげる場所にはならないようにしようぜ
進歩のないVBコピペプログラマーのためにコードを代わりに書いてあげる場所にはならないようにしようぜ
894デフォルトの名無しさん (アウアウエー Sa23-PCBP)
2018/12/09(日) 17:47:39.30ID:QJ+QHutHa >>891
デバッガで何が返ってるか見たらすぐ分かるでしょ
デバッガで何が返ってるか見たらすぐ分かるでしょ
895デフォルトの名無しさん (ワッチョイ 2bfa-WxAZ)
2018/12/09(日) 17:53:08.88ID:z3UBPXgg0896デフォルトの名無しさん (アウアウエー Sa23-M/db)
2018/12/09(日) 18:58:05.28ID:MwzmlrtWa >>892
たぶん分かってると思うけど、ドキュメント見る限り無理だね
そもそも今時モーダルなダイアログを表示してテキスト入力させるUIってどうなのよって気がする
単純なメッセージボックスでもイラッとくるよね
たぶん分かってると思うけど、ドキュメント見る限り無理だね
そもそも今時モーダルなダイアログを表示してテキスト入力させるUIってどうなのよって気がする
単純なメッセージボックスでもイラッとくるよね
897デフォルトの名無しさん (ワッチョイ 01d2-WxAZ)
2018/12/09(日) 19:01:49.57ID:bhezjmzk0 >>891
その Empty の型はなに?
たぶん string なんだろうけど、それなら IsNullOrEmpty() あたりかね。
895 の言うような問題もあるけれど、もとから Empty かどうかだけで判定してたなら上ので用が済むんじゃね。
その 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でもそれ出来ないから
そもそも、今の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だから、可能なら避けるべきなのは当たり前だし、
昔から嫌われ者だよね
そして、どうしてもモーダルなダイアログでテキストの入力を強制する必要があるケースなんか
あんまりないと思う。他にいくらでも代替手段があるでしょ
どうせ分かって言ってると思うけど、モーダルなダイアログはユーザーの自由を奪って
特定の操作の完了を強制するUIだから、可能なら避けるべきなのは当たり前だし、
昔から嫌われ者だよね
そして、どうしてもモーダルなダイアログでテキストの入力を強制する必要があるケースなんか
あんまりないと思う。他にいくらでも代替手段があるでしょ
903デフォルトの名無しさん (ワッチョイ d9e3-k/Y9)
2018/12/09(日) 20:39:11.66ID:pDRfOAll0904デフォルトの名無しさん (ワッチョイ 939f-n9Ol)
2018/12/09(日) 20:50:02.42ID:IXOxvMb/0905デフォルトの名無しさん (ブーイモ 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意味がない時は無効化。
オペレーターの入れ替わり多い業界相手に売ってるから迷わせたらサポートが死ぬ。
ボタンも、押すと問題がある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を真似てモードレスになってるよね。
まあ、さすがにモーダルの方が好みとか、作る方の都合を言ってるんじゃなきゃ
ネタで言ってるんだと思うが...
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
大体ユーザーが喜ぶんわおまえらが良いと思う逆やからね
これ覚えとった方がええで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で楽するためじゃない?
thisつけたいのはIntelliSenseで楽するためじゃない?
915デフォルトの名無しさん (ワッチョイ d9e3-k/Y9)
2018/12/10(月) 19:57:30.23ID:mIPzNYaj0916デフォルトの名無しさん (ワッチョイ d906-n9Ol)
2018/12/10(月) 22:56:37.46ID:e05pNJ/D0 モーダルダイアログの欠点は、マルチウインド故に偶に起こる事故でモーダルなのにウインドウがメインの裏に回っちまって操作不能になる
それが改良されたUWPのContentDialogは良いね
何しろメインウインドウ上に描画されているだけだから上記の事故が発生しない
wpfのmaterial design xaml toolkitでも似たようなことが出来るな
それが改良されたUWPのContentDialogは良いね
何しろメインウインドウ上に描画されているだけだから上記の事故が発生しない
wpfのmaterial design xaml toolkitでも似たようなことが出来るな
917デフォルトの名無しさん (ワッチョイ 2b9a-e5Zh)
2018/12/10(月) 23:00:17.02ID:gZkxIcRc0 >>916
TopMost=trueにしとけば済む
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:znnejAaHa921デフォルトの名無しさん (ワッチョイ 4b33-e/g/)
2018/12/11(火) 20:53:01.04ID:TeCHIZzA0922デフォルトの名無しさん (アウアウウー Sa05-Od6P)
2018/12/12(水) 07:55:33.61ID:PgOiCvwKa >>920
GetParentをcallすれば分かる
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 こういうやつです。
マウスポインターで待ち状態のカーソルが出て半透明になり、その後↓の警告が出てくるような状態です。
https://kb.seeck.jp/wp/wp-content/uploads/2011/05/PTBL1912-s.jpg
マウスポインターで待ち状態のカーソルが出て半透明になり、その後↓の警告が出てくるような状態です。
https://kb.seeck.jp/wp/wp-content/uploads/2011/05/PTBL1912-s.jpg
926デフォルトの名無しさん (ワッチョイ 4156-xqdQ)
2018/12/12(水) 15:41:22.57ID:gpIihp8I0 簡単に再現すると、これを実行したような状態です。
bool test = false;
while (test == false) { };
しばらくすると半透明になって、右上の×しか押せなくなり、押すと↓のような警告が出て終了するしかなくなると思います。
http://dekiru.info/wp-content/uploads/2015/03/tskmgr02.jpg
bool test = false;
while (test == false) { };
しばらくすると半透明になって、右上の×しか押せなくなり、押すと↓のような警告が出て終了するしかなくなると思います。
http://dekiru.info/wp-content/uploads/2015/03/tskmgr02.jpg
927デフォルトの名無しさん (ワッチョイ 4b23-VgPf)
2018/12/12(水) 15:49:07.30ID:Gas9nc7W0 単にメインスレッドで重い処理やってるだけのような気もしないでもないけども
とりあえずCPUに余裕があるならVS起動してプロセスにアタッチして全て中断してみる
とりあえずCPUに余裕があるならVS起動してプロセスにアタッチして全て中断してみる
928デフォルトの名無しさん (アウアウエー Sa23-M/db)
2018/12/12(水) 18:46:12.29ID:9xK1qYaAa 盗んだバイクで
>>926
デバッグ実行してその問題が起こった時に、にIDEのツールバーの一時停止のピクトグラムのボタン
(ツールチップの表示は「すべて中断」)を押せばビジーループになってる箇所が分かるんじゃない?
>>926
デバッグ実行してその問題が起こった時に、にIDEのツールバーの一時停止のピクトグラムのボタン
(ツールチップの表示は「すべて中断」)を押せばビジーループになってる箇所が分かるんじゃない?
929デフォルトの名無しさん (ワッチョイ 2b9a-e5Zh)
2018/12/12(水) 20:23:04.54ID:kvTCOjS80 >>926
VS2017ならデバッグのパフォーマンスプロファイラーで監視したらデバッグ停止した後にCPU負荷の一覧をメソッドごと(関数名)に作ってくれるよ
だいたいどこかのループで嵌っているんだろうから自分で書いているのなら当たりつけてブレークポイント入れていけばわかると思うけど
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でかく割合はどれくらいなの?
コードビハインドほとんど使わなかったらコードが冗長になって
マイナス面のが多そうに感じる。
書かれていることあるけど、企業向けの業務アプリでは
コードビハインドにはほとんど書かずにMVVMでかく割合はどれくらいなの?
コードビハインドほとんど使わなかったらコードが冗長になって
マイナス面のが多そうに感じる。
932デフォルトの名無しさん (アウアウエー Sa82-MGZ2)
2018/12/14(金) 00:16:03.93ID:lOfJT1COa その前にWPFを採用する割合がほぼゼロ
.NETの業務アプリなら今はほとんどがASP.NETで一部WinFormsが残ってるくらいだよ
.NETの業務アプリなら今はほとんどがASP.NETで一部WinFormsが残ってるくらいだよ
933デフォルトの名無しさん (ワッチョイ 3b8a-Z14q)
2018/12/14(金) 02:47:17.47ID:55WBGJfT0 うちは専用端末向けの業務システム売ってるけど、WPFでなくWinForms使ってる。
ハードウェアとASPサービスのセットが前提の売り物だけど。
ハードウェアと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まわりの開発の時間とコストが増える
ブラウザバージョンアップで動かなくなる
パフォーマンスも落ちる
とかデメリットが多すぎるし全部ブラウザだけでなんとかするのは少数派だと思ってた。
クロスプラットフォーム対応のために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使うのも怖い
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分からないから使わないならリスク回避
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ベンチャーでなくても、毎日のようにリリースされるシステムって普通にあるんやで
イケイケのWebベンチャーでなくても、毎日のようにリリースされるシステムって普通にあるんやで
940デフォルトの名無しさん (スププ Sdaa-sY6B)
2018/12/14(金) 08:08:29.06ID:tIMQiboGd 俺が前にいた会社はWPFバリバリ使ってたよ。
Blendも使ってた。
デザインセンターとやりとりするのにBlend確かに便利だったし。
WinFormsはほとんど使ってなかったな。
Blendも使ってた。
デザインセンターとやりとりするのにBlend確かに便利だったし。
WinFormsはほとんど使ってなかったな。
941デフォルトの名無しさん (ワッチョイ 1e81-ejmu)
2018/12/14(金) 08:15:12.24ID:GJ/DAGX40942デフォルトの名無しさん (ワッチョイ 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を使わなければならないケースもほぼないだろう。
不特定多数に使わせるシステムならブラウザでも仕方ないが社内利用だからな
一般の個人ユーザーでさえWeb appを嫌っているという証拠だ
業務で長時間使うアプリがブラウザベースっていうのは普通にゴミでしょ
>>939
本当はユーザーに選ばせたのではなく、classic ASPしかできないから
ほかも提案せずにclassic ASPで開発したんだろう。
ユーザーはやむを得ない理由がない限りブラウザみたいな使いづらいのを選ばない。
Xamarinとか使えばクロスプラットフォーム対応もできるわけで
Web appを使わなければならないケースもほぼないだろう。
不特定多数に使わせるシステムならブラウザでも仕方ないが社内利用だからな
943デフォルトの名無しさん (スププ Sdaa-sY6B)
2018/12/14(金) 08:35:34.97ID:tIMQiboGd 今の業務系ってWebの方が多くない?
長時間使うものでも。
セットアップが必要だと割と嫌われる気がする。
環境変えるのは割と稟議要るし。
うちどうしてもクラサバにするアプリは未だにClickOnce使ってる。
長時間使うものでも。
セットアップが必要だと割と嫌われる気がする。
環境変えるのは割と稟議要るし。
うちどうしてもクラサバにするアプリは未だにClickOnce使ってる。
944デフォルトの名無しさん (スップ Sd4a-5HC6)
2018/12/14(金) 08:39:24.37ID:Tj2eBqcgd 業務系っつってもいろいろあるしな
インストールとかのこと考えたらwebで済むならwebでやったほうが導入コスト抑えられることもあるし
案件次第かと
インストールとかのこと考えたらwebで済むならwebでやったほうが導入コスト抑えられることもあるし
案件次第かと
945デフォルトの名無しさん (スププ Sdaa-sY6B)
2018/12/14(金) 08:40:29.88ID:tIMQiboGd 考えるに、Web系にしたいのは、タブレット対応を出来るだけ楽にやりたいって方が大きいんじゃないかな。
iPadアプリなんかは大量に作るわけにもいかんし。エンタープライズでも個数は決まってるから。
ASPならある程度は楽だよ。
UI部分はJSフレームワークと内製コントロール使ってるけど、今までのフォームベタ書きより遥かに楽。
そういえば今Office365だってReactだね。
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みたいなツール的なアプリ)の開発だろうけど、
実際のシステム開発では工場を作る仕事の方がずっと多いの
工場が使いづらいからって従業員がその工場を使わないなんてあり得ないだろ?
ID:GJ/DAGX40が想像してるのはその工場の中で使われる工作機械(Excelみたいなツール的なアプリ)の開発だろうけど、
実際のシステム開発では工場を作る仕事の方がずっと多いの
948デフォルトの名無しさん (ブーイモ MM6f-MGZ2)
2018/12/14(金) 09:08:26.15ID:uOUb+NbhM 学生だと思うけど、仕事でバリバリ使える新しい技術を習得したいならUI技術なんかどうでもいいからAWSを学ぶことを強くお勧めする
伸び続ける需要に対してまともなクラウド技術者(AWSから単なるホスティングサービス以上の価値を引き出せる人)はSI業界では全然足りてなくて、
一通りのプログラミングスキルを備えた上で手を出すなら技術スキルとしては最強よ
伸び続ける需要に対してまともなクラウド技術者(AWSから単なるホスティングサービス以上の価値を引き出せる人)はSI業界では全然足りてなくて、
一通りのプログラミングスキルを備えた上で手を出すなら技術スキルとしては最強よ
949デフォルトの名無しさん (ワッチョイ 1e81-ejmu)
2018/12/14(金) 09:54:48.70ID:GJ/DAGX40950デフォルトの名無しさん (ワッチョイ 1e81-ejmu)
2018/12/14(金) 10:07:13.08ID:GJ/DAGX40 >>947
使いづらいとか関係ないと言っちゃう人は開発者に向いてないんじゃないの
自分はフリーウェア作る時でもどうやったら他人が使いやすくなるかじっくり考えるよ
Excel?工場?
社会人だしASP.net MVCでサイト開発もやってるしDB側も自分でスキーマから作ってる。
受託開発のような立場ではない開発者
使いづらいとか関係ないと言っちゃう人は開発者に向いてないんじゃないの
自分はフリーウェア作る時でもどうやったら他人が使いやすくなるかじっくり考えるよ
Excel?工場?
社会人だしASP.net MVCでサイト開発もやってるしDB側も自分でスキーマから作ってる。
受託開発のような立場ではない開発者
951デフォルトの名無しさん (ワッチョイ ebb3-rSJK)
2018/12/14(金) 11:20:55.70ID:T5iMn8UB0 まあ普通はWinformsでできることにWPF使わないよね
情報もミドルウェアも豊富だし完全に枯れてるし開発者も簡単に見つかるし
グラボのドライバのトラブルをモロに受けたりしないし
Winformsでは実装が大変なリッチなUIを実現したい場合に初めて検討するんでええと思うわ
情報もミドルウェアも豊富だし完全に枯れてるし開発者も簡単に見つかるし
グラボのドライバのトラブルをモロに受けたりしないし
Winformsでは実装が大変なリッチなUIを実現したい場合に初めて検討するんでええと思うわ
952デフォルトの名無しさん (ワッチョイ 4676-/nUu)
2018/12/14(金) 11:23:58.59ID:lkWiVuQs0 今ならWinFormかUWPの2択だな
WPFはない
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は風前の灯やぞ
UWPは風前の灯やぞ
955デフォルトの名無しさん (アウアウエー Sa82-KEhP)
2018/12/14(金) 11:42:15.94ID:pFvZXuP0a C#とたぶん関係ないけど、病院の待合室とか、科学館みたいなところで
いろんな情報をアニメーション付きで表示するサイーネージって今は何を使って開発してるの?
ああいうの大半はWindows PCだと思うけど
まさかFlashじゃないよね
いろんな情報をアニメーション付きで表示するサイーネージって今は何を使って開発してるの?
ああいうの大半はWindows PCだと思うけど
まさかFlashじゃないよね
956デフォルトの名無しさん (ワッチョイ ebb3-rSJK)
2018/12/14(金) 11:43:35.88ID:T5iMn8UB0 >>955
何で作ってんのかは知らんけどああいうのがWPFを使うべき案件
何で作ってんのかは知らんけどああいうのがWPFを使うべき案件
957デフォルトの名無しさん (ワッチョイ 1ae9-5HC6)
2018/12/14(金) 12:05:29.63ID:dJlHzP7u0 なんでwebアプリだったら生産性が落ちるんだw
そんなんケースバイケースじゃん
広い世の中いろんな案件、全部一緒くたにしてよく語れるなw
そんなんケースバイケースじゃん
広い世の中いろんな案件、全部一緒くたにしてよく語れるなw
958デフォルトの名無しさん (オッペケ Sra3-lMXg)
2018/12/14(金) 12:30:35.29ID:ccHhRNR2r Webアプリってことはサーバー用意しないといけないじゃん
WinFormでForm全体にGeckoブラウザ表示してhtmlとcssでUIつくればよくね?
WinFormでForm全体にGeckoブラウザ表示してhtmlとcssでUIつくればよくね?
959デフォルトの名無しさん (ワッチョイ faeb-3flP)
2018/12/14(金) 13:00:30.21ID:LzA8nB0t0 そうしてみんなelectronにたどり着く
c#を捨ててtypescriptへ
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でポトペタで誰でも出来るから作る人すぐ見つかるぐらいだと思うが
デスクトップアプリ作るなら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:tIMQiboGd965デフォルトの名無しさん (ワッチョイ eac3-+KUv)
2018/12/14(金) 15:21:21.44ID:kZ6ZIZH+0 とはいっても、winformとWPFはオープンソース化されるわけで
966デフォルトの名無しさん (ブーイモ MM47-MGZ2)
2018/12/14(金) 17:17:59.74ID:VNQD+NFIM967デフォルトの名無しさん (スプッッ Sd4a-g8EJ)
2018/12/14(金) 18:56:43.52ID:6Ms+lAwHd >>943
ClickOnceの証明書どうしてる?
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#ってのがいいんじゃねーの
やはり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から動的生成もやろうと思えばできるし
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ほとんど使ったことない人だろうな
UIだけでなくDatabindingもWPFのが出来がいい
否定してる人は勉強してなくてWPFほとんど使ったことない人だろうな
976デフォルトの名無しさん (ワッチョイ 1e81-ejmu)
2018/12/14(金) 23:08:33.13ID:GJ/DAGX40 >>963
中堅以上の企業ならdesktop PCの管理ツールいれてるでしょ
グループポリシーじゃなくても管理ツールで一括でdeployはできる
web appの場合はブラウザのバージョンをそろえる必要があるし
web appのが楽とも言い切れない
中堅以上の企業ならdesktop PCの管理ツールいれてるでしょ
グループポリシーじゃなくても管理ツールで一括でdeployはできる
web appの場合はブラウザのバージョンをそろえる必要があるし
web appのが楽とも言い切れない
977デフォルトの名無しさん (スププ Sdaa-sY6B)
2018/12/14(金) 23:36:18.74ID:2263YZDvd978デフォルトの名無しさん (スププ Sdaa-sY6B)
2018/12/14(金) 23:41:16.45ID:2263YZDvd >>976
インストールって行為がいかんのだと。
こちらが入れるあちらが入れるの問題ではない。
あんまり資産管理アプリの存在を気取られる訳にもいかんしな。
ブラウザのバージョンはもっと話が単純で、完全固定だよ。IEだけど。
Windows Updateも検証してから撒いてる。
インストールって行為がいかんのだと。
こちらが入れるあちらが入れるの問題ではない。
あんまり資産管理アプリの存在を気取られる訳にもいかんしな。
ブラウザのバージョンはもっと話が単純で、完全固定だよ。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は作ってる時はいいけど、後で見た時に必ずしも可読的じゃない。
そんなことないよ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の本来の思想でいえば、普通にコードビハインド書きまくって従来のコンポーネント指向で作るのが正しい使い方。
WPFではUIの自由度が上がることで制御すべき状態の数が激増するから、
それが極力開発者の負担にならないようにするためにバインディングが強化されたんだよ。
WPFの本来の思想でいえば、普通にコードビハインド書きまくって従来のコンポーネント指向で作るのが正しい使い方。
981デフォルトの名無しさん (ワッチョイ 868a-UKyl)
2018/12/15(土) 02:39:09.34ID:LeOuIFUL0 WPF一択
UIを大幅リニューアルするとき、xamlだけの修正でVMは弄らずにすんだから
きちんと分離しといてよかったなと思う。
あと最近増えてきた高解像度ディスプレイで文字を拡大表示するPC(Surfaceとか)で、
プログラム側の対応無しに自動的にサイズ調整してくれるのも助かってる。
WinFormで高DPI対応とか地味なうえにめんどくさくてやる気出んわ
UIを大幅リニューアルするとき、xamlだけの修正でVMは弄らずにすんだから
きちんと分離しといてよかったなと思う。
あと最近増えてきた高解像度ディスプレイで文字を拡大表示するPC(Surfaceとか)で、
プログラム側の対応無しに自動的にサイズ調整してくれるのも助かってる。
WinFormで高DPI対応とか地味なうえにめんどくさくてやる気出んわ
982デフォルトの名無しさん (ワッチョイ 0ad2-g8EJ)
2018/12/15(土) 06:03:04.70ID:jbLsS7fN0 >>976
.NET Frameworkのバージョン揃える方がきつい
.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のが遥かに完成されてる
OnDrawかOnPaintで値が好きにいじれる
mfcやwin32のが遥かに完成されてる
988デフォルトの名無しさん (ワッチョイ 139f-5Jpq)
2018/12/15(土) 10:28:26.19ID:wll8PTaL0 >>986見てるとWPF嫌いなヤツは無能なんだなって思う
できるやつは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:Wu4Fx0bU0992デフォルトの名無しさん (ワッチョイ 4f17-2dqZ)
2018/12/15(土) 11:08:48.30ID:o4PwGoKi0 >>991は荒らしが建てたスレなので使わないでください
ふらっと C#,C♯,C#(初心者用) Part141
https://mevius.5ch.net/test/read.cgi/tech/1544839627/
ふらっと C#,C♯,C#(初心者用) Part141
https://mevius.5ch.net/test/read.cgi/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:Xa6jDRNv0996デフォルトの名無しさん (ワッチョイ ebb3-rSJK)
2018/12/15(土) 13:38:19.29ID:HhhdbPQI0 >>987
無理
無理
997デフォルトの名無しさん (ワッチョイ 1e81-ejmu)
2018/12/15(土) 13:58:22.86ID:Wu4Fx0bU0998デフォルトの名無しさん (ワッチョイ 1e81-ejmu)
2018/12/15(土) 14:04:42.98ID:Wu4Fx0bU0 >>979
イベントハンドラは便利だし普通にWPFでつかってる。
メソッド長くなり過ぎないようにしてれば、後でそこまで困ったことには
ならないと思っている。
データはEntity Framworkでやってコード短くしている
イベントハンドラは便利だし普通にWPFでつかってる。
メソッド長くなり過ぎないようにしてれば、後でそこまで困ったことには
ならないと思っている。
データはEntity Framworkでやってコード短くしている
999デフォルトの名無しさん (ワッチョイ 1e81-ejmu)
2018/12/15(土) 14:05:22.02ID:Wu4Fx0bU01000デフォルトの名無しさん (ワッチョイ 1e81-ejmu)
2018/12/15(土) 14:05:38.70ID:Wu4Fx0bU0 1000
荒らしたがたてた重複は無視で
荒らしたがたてた重複は無視で
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 71日 19時間 9分 0秒
新しいスレッドを立ててください。
life time: 71日 19時間 9分 0秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【北区小学校火災】女性教師「電気ストーブ近くで洗濯物を乾かしていた」 失火とみて捜査 燃えた残骸に“繊維片”付着 ★3 [Ailuropoda melanoleuca★]
- 「ケンタッキーは白米と合わない、一緒に食わない」キレる夫に妻がネットで問いかけ反応様々「唐揚げ定食の感覚」「私も出さない」 [muffin★]
- 【W杯】元ブラジル代表ロナウド氏「日本には簡単に勝てる」決勝T1回戦で対戦可能性…避けたいのは「オランダ」 [首都圏の虎★]
- 【速報】北海道・旭川女子高校生殺人 内田梨瑚被告控訴しない方針 懲役27年確定へ [首都圏の虎★]
- 仏南西部で44.3℃ 全土で死者40人、2歳と4歳児も犠牲に 英でも39℃予想 [首都圏の虎★]
- 歌舞伎町の有名ホスト4人 アメリカ入国を拒否され強制送還 「君達の職業では純粋な旅行として認められないから帰れ」と言われる [muffin★]
- 【緊急高市速報】かにぱん🦀製造一時中止 [469534301]
- 玉木「国旗損壊罪に立法的事実無い」民民「予防的立法事実で罰則必要」自民党「ご時世で罰則」 [245325974]
- 【高市疑問】なんか謎の香港の捨て垢増えたと思わん? [419865925]
- 玉木雄一郎に弄ばれて自殺した高橋茉莉(27)、後を追って母親も自殺。高市よりヤバいだろ😰 [485187932]
- 旧清和会が“分裂騒動”《“W西村”が安倍晋三元首相偲ぶ会」で命日開催をめぐって…》安倍が原因で😲 [521921834]
- 東京都北区の小学校火災、女性教員「電気ストーブで洗濯物を乾かしていた」 [377482965]