- 1 名前:デフォルトの名無しさん mailto:sage [2017/10/09(月) 19:00:56.93 ID:Y4203ffV0.net]
- 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980を踏んだ人は新スレを建てて下さい。 >>980が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part131 mevius.5ch.net/test/read.cgi/tech/1504861931/ ■関連スレ C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net mevius.5ch.net/test/read.cgi/tech/1492843013/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■情報源 https://msdn.microsoft.com/en-us/library/gg145045.aspx referencesource.microsoft.com/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
- 856 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 17:44:10.96 ID:SXZaCuwQ0.net]
- ベッドノウハウ
しかし俺は未経験
- 857 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 17:51:46.51 ID:sTeHaJ1X0.net]
- >>832
だからそんなことが必要になったことがどれだけあるんだ?
- 858 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 18:10:38.00 ID:WuSfeAlZa.net]
- なんかしょうもないことで争ってるけど、>>823の方が正しいね
エイリアスの機能がいらないならそもそもrefってキーワードも用意されてないでしょ 負け惜しみでくだらない意地を張るのは子供っぽいよ
- 859 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 18:13:38.30 ID:wTKOoVxtr.net]
- ペットノウハウ
ボトルじゃないよ
- 860 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 18:17:18.92 ID:wTKOoVxtr.net]
- MSらしく反則技が用意してあるだけ
初心者は使わない方が無難 返り値が二つ以上欲しい時は今なら名前付タプルを使う
- 861 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 18:26:59.70 ID:flyq3nv80.net]
- 返値代わりに使うのはoutだし今ならって言ってるとおり昔はなかったんだし
ちょっと何言ってるのか分からない
- 862 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 18:35:14.75 ID:sTeHaJ1X0.net]
- >>840
> エイリアスの機能がいらないならそもそもrefってキーワードも用意されてないでしょ ??? refって参照型じゃなくても使えるんだが... 参照型にrefを使うことがほぼないだろって話だと思うけどな > 負け惜しみでくだらない意地を張るのは子供っぽいよ 自己紹介は要らんよ w
- 863 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 18:40:28.61 ID:WuSfeAlZa.net]
- >>844
意味が分からない 変数の値の利用と書き換えの両方が必要かどうかは、その変数の型が 参照型であるか値型であるかは関係ない。 何を言ってんの? しかし、いい歳こいて幼稚な奴って嫌だねほんと
- 864 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 18:43:37.92 ID:OcSSsXSe0.net]
- >>842
名前付きタプル使いたいけどVS2013限定という変な縛りに囚われているわ フレームワーク縛りは判るけど、IDEのバージョンを縛る理由ってなんなんだろう
- 865 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 18:58:38.30 ID:3Qk/5QRnM.net]
- 古いコンパイラでビルドできなくなるだろ
俺個人としては大した問題ではないと思うけど、大した問題だと考える人がいるのは普通に理解できるぞ
- 866 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 19:12:51.54 ID:sTeHaJ1X0.net]
- >>845
> 変数の値の利用と書き換えの両方が必要かどうかは、その変数の型が > 参照型であるか値型であるかは関係ない。 えっ? 普通にググればrefが値型と参照型でどう使われてるかわかると思うんだが... 引っ込みつかなくなってるのかな > しかし、いい歳こいて幼稚な奴って嫌だねほんと また自己紹介ですか? w
- 867 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 20:19:58.00 ID:m6ZusNHm0.net]
- 幼稚呼ばわりが得意なのはかの例外を握り潰す人だが
- 868 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 20:22:16.23 ID:m6ZusNHm0.net]
- ようするにキチガイなので相手にしなくてよいという話
- 869 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 20:45:43.86 ID:5h9DYzfZ0.net]
- >>840
とりあえず、refは値型以外には使い道が無いのは確定で。
- 870 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 20:48:54.35 ID:wTKOoVxtr.net]
- >>846
2017?
- 871 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 20:49:38.51 ID:mF4CZaPha.net]
- >>848
マジモンかよ 俺個人が使うか、あるいは一般に多用されるかどうかはともかく、 参照型であろうと変数の値(つまり参照)そのものを書き換えたいケースは存在すると思われる。 たとえばStringのようなイミュータブルな型や配列の長さのように変更できない要素を 持つ型の場合、元の値を利用しつつそれを加工した値を返すにはrefを使うしかない
- 872 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 20:50:11.25 ID:jl0ZLZ4q0.net]
- 最近見たrefはBindableBaseの中だったな、ref Tとかジェネリックの場合
普段は使わないね
- 873 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 21:08:51.42 ID:uh9vgcan0.net]
- 議論ごっこやりたいのなら
ふらっと C#,C♯,C#(議論用) mevius.2ch.net/test/read.cgi/tech/1469538912/ で好きなだけやってくれ。ワッチョイもないから
- 874 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 21:14:23.59 ID:5h9DYzfZ0.net]
- 意味もなく
try { ・・・ { catch {} や try { ・・・ { catch (Exception ex) { throw ex; } するヤツってアフォですか? お願いだから辞めてください。
- 875 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 21:16:19.73 ID:mF4CZaPha.net]
- >>856
プログラマがそこで例外が発生しうることを認識してそのコードを書いていることを 明示する意味はあるよ。 >>851といい、ちょっと単細胞過ぎないか?
- 876 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 21:28:09.69 ID:sTeHaJ1X0.net]
- >>850
了解 >>853を見る限りおまえの言う通りだな >>851 さすがにそれは極論過ぎ
- 877 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 21:30:25.68 ID:VAjFkczd0.net]
- >>857
え?
- 878 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 21:49:38.46 ID:FXv0ObyH0.net]
- >>857
c#で>>856やるとそこまでのスタックトレース消し去ることになるんだけど正気?
- 879 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 21:49:52.84 ID:jdRJf/Av0.net]
- ファイルが読めない程度で例外返すクラスとか一旦握り潰して動作を変えたい
- 880 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 21:53:09.24 ID:J+hizfOLd.net]
- >>861
c#使うのやめた方がいいな
- 881 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:02:23.28 ID:5h9DYzfZ0.net]
- >>862
go言語が例外処理の機能を無くした理由の1つは、大半のプログラマーが例外処理を正しく扱えないから。 本当にそう思うよ。
- 882 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:06:52.22 ID:mF4CZaPha.net]
- >>860
まあ後者はたしかに普通やらないと思う。 ただ、例外情報なんて必ずしも常に必要とは限らない。
- 883 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:07:27.03 ID:/B23IXM6M.net]
- >>861
関数の返り値でエラー処理したい人?
- 884 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:09:09.61 ID:KEPGzX0z0.net]
- >>863
C#使うのやめてGo使った方がいいな
- 885 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:12:09.30 ID:mF4CZaPha.net]
- >>865
TryXXXなんてのがあるように、そもそも成功したかどうかしか関心がない場合もあるでしょ
- 886 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:12:58.59 ID:5h9DYzfZ0.net]
- >>866
Go言語もまともには扱えないと思う。
- 887 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:14:37.92 ID:5h9DYzfZ0.net]
- >>867
それは例外でエラーを拾はないでエラー処理をしたい場合。 例外処理は少々重い。
- 888 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:19:20.92 ID:48c6JPwZa.net]
- 例外は便利だよ
変な使い方しなければ
- 889 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:23:38.64 ID:/B23IXM6M.net]
- >例外処理は少々重い。
初回の例外発生の時にその例外クラスがロードされるみたいなんだけど、その事?
- 890 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:40:21.94 ID:FXv0ObyH0.net]
- >>864
常に必要ではないが、それをわざわざ消す必要があるか?
- 891 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:40:24.62 ID:WGNINBFE0.net]
- ファイルを削除や移動する前に、他のソフトで使用中かどうかを調べるのに
R/Wモードでオープンしたときに例外が発生するかしないかで判断するしか無い この処理のときはcatchでfalse返して例外を握りつぶしている
- 892 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:56:58.41 ID:mF4CZaPha.net]
- >>872
まあ、たとえ使わなくてもInnerExceptionに食わせて再スローした方がベターだとは思う
- 893 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:59:45.13 ID:FXv0ObyH0.net]
- >>874
Java出身の人がよくやる勘違いだよね
- 894 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 23:37:22.84 ID:48c6JPwZa.net]
- 例外で何を伝えたいかどう制御したいか決まってなければ迷うかもしれない
例外出ても継続できる内容なのかもあるかな
- 895 名前:デフォルトの名無しさん [2017/11/05(日) 00:13:35.57 ID:m9wZGInC0.net]
- 例外をどこで処理するか(または投げっぱなすか)という基準をきちんと決めないとカオスになりがち
でも事前に決めて徹底させるのが難しい場面も多いのよね
- 896 名前:デフォルトの名無しさん [2017/11/05(日) 00:49:39.43 ID:/t3HbS0w0.net]
- タスケテ!!!
RARを回答する方法がわからないの! なんか組み込みでいいのないの!?
- 897 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 00:53:25.52 ID:yAuwzX3k0.net]
- >>878
7Zipのライブラリで回答できた https://sevenzip.osdn.jp/sdk.html 使い方はすっかり忘れたから聞かないでくれ
- 898 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 00:55:50.51 ID:eJ/HGJ4TM.net]
- コトリンの恐怖がおんどれらを襲うwww
- 899 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 01:34:09.45 ID:27Wvnc5t0.net]
- 適当に検索してみたら、それなりにref stringとかを伴うコードがあった
最近のref絡みの言語拡張を見てもコンパイラ絡みのガチガチに最適化するところとかはref引数の使いどころがあるっぽい https://github.com/dotnet/corefx/blob/ab0c04f10c8094731d13de6f0ceaa71dd776aa00/src/System.CodeDom/src/System/CodeDom/Compiler/Executor.cs あと、二重ポインタを扱うPInvokeとかでもでてくる
- 900 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 01:47:27.68 ID:+CtSMn6Br.net]
- CodeDomだからC#創成期だね
いわゆるひとつのレガシー
- 901 名前:デフォルトの名無しさん [2017/11/05(日) 01:51:07.20 ID:/t3HbS0w0.net]
- >>879
ぐぬぬだよ! exeとdll持ってきてコマンドラインにするかあ
- 902 名前:デフォルトの名無しさん [2017/11/05(日) 02:12:10.73 ID:/t3HbS0w0.net]
- 外部のexeをインスタンス化してそれにコマンド発行ってできる?出来た気がする
7Zipを複数起動して複数ファイルの圧縮と解凍をしたいのよ
- 903 名前:デフォルトの名無しさん [2017/11/05(日) 02:25:25.39 ID:/t3HbS0w0.net]
- ProcessStartInfoか
なんでもないです
- 904 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 03:06:49.05 ID:5Sua66ij0.net]
- >>884
ファイルIO絡むから、複数同時に動かすとむしろ遅くなるんじゃないかな。
- 905 名前:デフォルトの名無しさん [2017/11/05(日) 04:13:51.92 ID:/t3HbS0w0.net]
- >>886
えー SSDやRAMに出しても? メモリ内で解凍してデータ加工して再圧縮できない?全部メモリ内で 外部ツール使ってたら無理か
- 906 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 07:19:38.45 ID:3uuR82Hq0.net]
- >>881
夜中まで必死にググった努力は認める w >>882の言うように今時としてはいまいちのコードだよ
- 907 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 07:21:17.15 ID:eAtbP2F40.net]
- 「ref string」が何に使えるかは置いておいて、これで合ってる?
ttps://ideone.com/k9UegY
- 908 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 07:24:20.42 ID:3uuR82Hq0.net]
- >>886
むしろI/O絡むから複数同時の意味がある
- 909 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 08:45:03.60 ID:TvjmwwI20.net]
- >>871
仕組みは良くわからんけどスタックトレースを辿るとかの処理が重いと思ってる。 速度の必要の無い処理はオレオレ例外投げてエラー処理してる。 その方がコードがスッキリ書けるし。
- 910 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 08:47:05.58 ID:TvjmwwI20.net]
- >>881
いつの間にか、ref 参照型 は不要から ref 全て不要に変わってるし。 ref 値型は必要でしょう。
- 911 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 09:02:12.28 ID:TvjmwwI20.net]
- >>877
例外をどこで処理するかは非常に簡単だが皆分かってない。 ・例外をcatchして処理できる場合はcatchして処理する ・処理できない場合は何もしなくて(無駄にcatch throwもしない)呼び出しもとに任せる ・最後はAppDomain.UnhandledException等で拾ってログ吐いて落とす 何も出来ないのにcatchしてエラーメッセージだけ出すヤツ多すぎ。
- 912 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 09:14:14.87 ID:dh3CGsv/0.net]
- 言語仕様としてref値型が必要なのはわかるけど
じゃあ使うかというと使わないかな もう何年も書いた記憶がない
- 913 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 09:29:17.02 ID:yKSdtk7l0.net]
- ゲームで自分で当たり判定を書いたとき
GC を避けるため使ったことがあるな
- 914 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 09:52:03.41 ID:TvjmwwI20.net]
- >>894
hoge.TryParseも使った事がないと?
- 915 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 10:20:04.86 ID:3uuR82Hq0.net]
- .TryParse( ) は ref じゃなくて out
- 916 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 10:20:40.26 ID:vfJyTH9D0.net]
- アプリ作るたびに
ViewModelBaseのSetProperty<T>(ref T field, T newValue を作って毎回使ってるな。 で、今ちょうどJavaでMVVMやってて、refないのでSetPropertyがかけなくてつらい・・ if (this.value != value) { this.value = value; notifyほにゃ } refないのでプロパティ毎に3行書いてるんだけど死にたい。
- 917 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 10:40:15.20 ID:iAaHdauhM.net]
- SetProperty(value, v => field = value)
でいいだろ 設定先が単純なフィールドでない場合にも対応できるしJavaでも同じ
- 918 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 10:56:36.45 ID:vfJyTH9D0.net]
- んん??
どういうことそれ。引数2つ?? 3つ使って SetProperty<T>(T field, T newValue, Action<T> setterActon) こんな感じならいけそだけど。 SetPropert(field1, 10, t => field1 = 10) 後は最後にproperyNameを渡す引数追加して。
- 919 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 11:01:15.31 ID:vfJyTH9D0.net]
- SetPropert(field1, 10, t => field1 = 10)
は SetProperty(field1, 10, t => field1 = t)だった bool SetProperty<T>(T field, T newValue, Action<T> setterActon, string propertyName) { if (!object.equals(field, newValue)) return false; setterAction(newValue); onPropertyChanged(propertyName); return true; } コンパイルしてねぇけどこんな感じかな。
- 920 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 11:11:46.25 ID:27Wvnc5t0.net]
- >>888
前とは別の人だし、githubで適当に検索してみただけだから特に時間もかけてないんだけどね roslynとかで"ref 適当な型名"で検索しても、何件か引っかかるし一応新しいコードでも(美しいかはおいといて)使ってるんじゃないかな 軽くしか見てないけどnullなら初期化ってしてるコードが多いけど、ArrayBuilerはある程度有効活用になってそうな雰囲気 ref値型いらないって言ってるのはホントの初心者でしょ そちらは明らかに使いみちだらけ
- 921 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 11:22:13.81 ID:+CtSMn6Br.net]
- ×初心者
○過去を捨てられないベテランさん
- 922 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 11:28:47.04 ID:idfQljxTM.net]
- 例外が必ず適切にはかれるわけではないからこうしろって言われても困る
- 923 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 11:31:31.42 ID:3uuR82Hq0.net]
- >>902
いいわけは要らんよ 君がref参照型が有効だと思うコードを晒せばいいだけ
- 924 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 11:31:51.41 ID:FejOKWJjM.net]
- >>904
どう言う意味?
- 925 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 12:03:01.14 ID:8CRgy4j+a.net]
- まだ変なのが暴れてるけど、参照型であれ値型であれrefなんか必要ない、
であれば主張に一貫性があり一理ある。 筋が通らないのは。refは値型でしか意味がないという主張。 昨日説明した通り値型参照型の違いはrefの有用性と関係ない。 >>906 >>904がそうい言いたいのかどうか分からないけど、例外の処理方法や どの程度「真面目に」処理するかだって所詮要件次第なのに、例外の話になると 妙に教条主義的になる変な人がいるのは確かだ
- 926 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 12:46:34.43 ID:FejOKWJjM.net]
- >>907
例外が適切に吐かれないって事が有るのか知りたい。
- 927 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 12:51:25.95 ID:uz/X8WP/M.net]
- >>907
> まだ変なのが暴れてるけど 自己紹介ですか?
- 928 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 13:12:09.84 ID:yAuwzX3k0.net]
- ref はCの&にあたるものだが、&iは普通に使うけど&pなんて見たこと無いってことだ
- 929 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 13:34:59.13 ID:sDEQ50L
]
- [ここ壊れてます]
- 930 名前:K0.net mailto: >>894
パフォーマンスを求められる処理には縁がない人なんですね [] - [ここ壊れてます]
- 931 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 13:46:53.29 ID:eJ/HGJ4TM.net]
- 素人なのでref/outの使い道がよくわからないのですが、public変数にするとかじゃだめなんですか?
- 932 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 13:50:53.40 ID:xly4dgsP0.net]
- >>912
メソッド実行するたびにインスタンス作成すればおk
- 933 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 13:54:44.96 ID:jvnuL8BP0.net]
- >>912
コトリン使えばおk
- 934 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 14:06:26.50 ID:bQLtuEEMM.net]
- >>912
全部Public変数にしたら引数も戻り値も不要だね。 君は天才かも。
- 935 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 14:08:16.80 ID:+CtSMn6Br.net]
- >>912
素人なら自作関数には両方使わない 唯一あるとすれば パフォーマンスをシビアにする必要がある かつフィールドをたくさん持った値型 の場合だがそんな状況はアプリにもよるがそうそう無い
- 936 名前:デフォルトの名無しさん [2017/11/05(日) 14:15:44.96 ID:tjXjX3Hx0.net]
- >>893
と赤間さんが言ってたね
- 937 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 15:53:29.60 ID:3uuR82Hq0.net]
- >>912
釣り針でかすぎ
- 938 名前:デフォルトの名無しさん [2017/11/05(日) 18:22:15.77 ID:/t3HbS0w0.net]
- 藤原竜也に戻せよ
- 939 名前:デフォルトの名無しさん [2017/11/05(日) 18:23:05.50 ID:/t3HbS0w0.net]
- 誤爆
- 940 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 20:56:07.78 ID:TvjmwwI20.net]
- >>917
赤間って誰? MSDNのコラムにc#の例外処理について解説していた良い記事があったんだが見つからんわ。 C と C++のが見つかったw https://msdn.microsoft.com/ja-jp/library/cc440190(v=vs.71).aspx
- 941 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 21:00:58.55 ID:UgX7F9HB0.net]
- https://blogs.msdn.microsoft.com/nakama/2008/12/29/net-part-1/
これかな?
- 942 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 21:09:00.23 ID:TvjmwwI20.net]
- >>922
赤間さん?
- 943 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 21:12:55.00 ID:TvjmwwI20.net]
- 「よほどのことがない限り、アプリケーションで try-catch を書いてはいけません。」
これよ、これ。例外処理の本質。
- 944 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 21:42:49.26 ID:xly4dgsP0.net]
- >>924
そうはいってもファイルが読めないだけで例外だすじゃん
- 945 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 21:52:08.84 ID:RoulHjpBa.net]
- >>922
ああこの記事ね。 個人的にはあんまりロジカルじゃないと思うんだよねこの記事。 読んでいて感じるいくつかの「なぜ」に対する答えがない (1) エラーを業務エラーとそれ以外に大別するのはいいとして、なぜ前者に例外機構を 使ってはいけないのか? (2) なぜ集約例外ハンドラーみたいなスパテッティーを推すのか。 そもそもそういうスパゲッティーを避けるための仕組みが例外機構ではなかったのか? (3) いくら何でも 「よほどのことがない限り、アプリケーションで try-catch を書いてはいけません」 これは言い過ぎではないのか。
- 946 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 21:59:38.87 ID:sDEQ50LK0.net]
- >>926
(3)は吹いたわwww
- 947 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 22:12:12.00 ID:5Sua66ij0.net]
- リトライとかの回復処理は全部ライブラリー内で完結してることが前提なんだろうな。
言いたいことは分からないでもないけど、想定しているアプリがすごく狭い気がする。
- 948 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 22:39:40.25 ID:GDhCJlyO0.net]
- アプリケーションってよりビジネスロジックって言いたかったのかね
- 949 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 22:49:10.60 ID:fgQ02ied0.net]
- >>926
(1)や(3)はコメントで回答されてるんじゃないの? 集約例外ハンドラーは業務エラーを戻り値で表現しようと 例外で表現しようと必要じゃない?
- 950 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 22:51:14.59 ID:sDEQ50LK0.net]
- >>930
必要だってのと推奨するのとは違うだろ
- 951 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 22:52:06.64 ID:6FoY61ET0.net]
- てか集約例外ハンドラーがスパゲッティってどういうこと?
エラーメッセージやログ処理して終了するだけのごく短いコードだと思うけど違うの?
- 952 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 00:52:33.36 ID:voxzxgu2r.net]
- >>925
ヘルスバーグも筆の誤り
- 953 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 06:29:36.68 ID:6qywALcU0.net]
- >>928
例外に落ちた時点で回復可能なエラーって限られてるぞ。 ファイルがロックされて書き込めないとか。 殆どは回復不能だし、デッドロックにしてもリトライするより適切にロックしているかやロジックを見直す必要があるだろうし。 ま、例外の原因で一番多いのは自分の仕込んだバグだw
- 954 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 08:53:17.37 ID:2nM3KO37M.net]
- >>932
集約例外に回復コードを仕込もうと思ってるんだろ。
- 955 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 12:00:15.83 ID:I56lauc90.net]
- くそベンダーにありがちwww
- 956 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 12:23:10.12 ID:2nM3KO37M.net]
- 糞ベンダーは、全てのメソッドにtry-catchを入れるコーディング規約。
- 957 名前:デフォルトの名無しさん [2017/11/06(月) 16:16:18.79 ID:sVTioIv70.net]
- ネットで更新してるアプリってテキストファイルの文字読み込んでプログラミングしてるんだなその方が変更しやすいのか?
- 958 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 17:30:29.32 ID:2nM3KO37M.net]
- >>938
エスパー登場を待とう
- 959 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 17:33:56.53 ID:RoDWv0Jka.net]
- >>938
勘違いです
- 960 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 17:36:08.18 ID:Z+IOadg3M.net]
- ランチャー的なフォームから小画面を起動するフォームアプリを作ったのですが、小画面大量に出すと重くなります。小画面毎に別スレッドで起動する方法を教えてください
- 961 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 17:37:41.80 ID:RoDWv0Jka.net]
- 設計が間違ってます
小画面を大量に出さないようにしましょう
- 962 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 17:43:20.86 ID:Vd7vqFxu0.net]
- 小画面の意味がわからないし、大量とはどのくらいなのかもわからない
- 963 名前:デフォルトの名無しさん [2017/11/06(月) 17:48:57.32 ID:sVTioIv70.net]
- なんだ勘違いかテキストで読み込んでるのは理由あんまりないんだ
- 964 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 17:51:17.55 ID:Z+IOadg3M.net]
- >>942
そこをなんとか >>943 10枚程度です。
- 965 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 17:53:30.02 ID:RoDWv0Jka.net]
- ツールでボットやwebチェッカー使ってるんじゃないかな
ボット一個にwindow1個とか そういうのはwindow一個で多数のものを扱うべき リソースの無駄
- 966 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 17:55:01.56 ID:PxQVFHXG0.net]
- どうせ並列で動いてるならPCもう一個買えよ
- 967 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 17:56:54.41 ID:JuX+gvIy0.net]
- >>945
フォームを別に表示したら元のフォームには影響しないし 10や20くらいの別フォーム起動したくらいで重くなったことはない 小画面で何をやっているかわからないしスレッド分けて〜では多分解決しない >>944 スレ違いだと思うけどアンチウィルスのパターンデータ更新みたいなのと勘違いしているだろ VisualStudioだってバイナリアップデートなんだから
- 968 名前:デフォルトの名無しさん [2017/11/06(月) 18:06:53.58 ID:piexXh++0.net]
- 関数にListを渡す時に関数内で要素を書き換えできないようにするにはどうすればいいですか
- 969 名前:デフォルトの名無しさん [2017/11/06(月) 18:08:01.18 ID:QmwWSIUM6.net]
- 無理です
- 970 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 18:08:42.99 ID:JuX+gvIy0.net]
- >>949
C#7.2を待つかそのlistをコピーして渡すか書き換えないように気を付けるかしてください
- 971 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 18:27:27.21 ID:rATvQkns0.net]
- IReadOnlyListとして渡せばええやん
- 972 名前:デフォルトの名無しさん [2017/11/06(月) 18:33:50.08 ID:QmwWSIUM6.net]
- >>952
なにそれ オブジェクトのリストを作ったとしてそのリストの要素のプロパティを書き換えるのも出来ない?
- 973 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 18:35:54.11 ID:3XyzIl3H0.net]
- >>951
readonly ref って構造体限定じゃね?
- 974 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 18:37:32.84 ID:RoDWv0Jka.net]
- >>952
こんなものがあったのか 便利そう
- 975 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 19:01:30.72 ID:7bDcgZ2tM.net]
- >>801
無いことがバレてプログラマの月収は一律18万円になった
- 976 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 19:16:12.58 ID:GQ87vZ7n0.net]
- >>949
AsReadOnlyメソッドで足りるならそちらで >>905 言い訳とは 普通にroslynのソースとダブルポインタを要求するPInvokeじゃ不満足?複雑なやり取りを低コストでやれてると思うが
- 977 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 19:34:57.48 ID:6qywALcU0.net]
- >>941
スキルの無いヤツほどスレッドを使いたがる。 スレッドが何か分かっているヤツはスレッドでしか実現できない場合のみ仕方なくスレッドを使う。
- 978 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 19:43:20.15 ID:6qywALcU0.net]
- >>938
質問の内容がワケワカラン過ぎるぞ。
- 979 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 20:15:45.06 ID:TIxTD8nqM.net]
- >>957
> 普通にroslynのソースとダブルポインタを要求するPInvokeじゃ不満足?複雑なやり取りを低コストでやれてると思うが だからそう言う言い訳はどうでもいいからコードを晒せよ
- 980 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 20:27:25.28 ID:XSO2MFzP0.net]
- >>953
流石にそれを禁止するのは無理 IListにあるAddとかRemoveとかインデクサのsetterとかがないというだけなので
- 981 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 21:47:01.14 ID:Uzk0iC6KM.net]
- >>958
では軽くする方法を教えて下さい。 子フォームでは重要なことは非同期で行っています
- 982 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 21:54:22.54 ID:PxQVFHXG0.net]
- 何やってるか知らんけど
10枚も出したらそれで限界な可能性は? 非アクティブなときも重いってあるかなぁ?
- 983 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 21:55:47.11 ID:4oP8v+rY0.net]
- >>962
では重い原因を教えて下さい。 ただフォーム出して重くなったでは何も分かりません。
- 984 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 22:04:31.11 ID:TDT9B1paa.net]
- >>962
まず重い原因を突き止めましょう。 純粋にFormのロード(表示)だけに時間がかかってるなら 個人的は軽量化は諦めた方がいいと思う Loadか何かのタイミングで実行してる初期化が重いなら そこを軽量化するなりタイミングを工夫するなり 個人的想像だと前者の可能性は低い気がする というか、Vista時代のPCでも余程大量のコントロール乗せてたり レイアウトパネル系を多用でもしてないとそこまで極端に重くはならんと思う
- 985 名前:デフォルトの名無しさん [2017/11/06(月) 22:06:21.11 ID:qEpy6DDg0.net]
- Listを抽象化したいのですが、どのように書けば良いでしょうか?
以下のように書けるかと思ったのですがダメでした よろしくお願いします interface ITest { } public class Test: ITest { public string hogege { get; set; } } class Hoge { List<ITest> test = new List<Test>(); }
- 986 名前:あ mailto:sage [2017/11/06(月) 22:06:24.98 ID:/hMSyilp0.net]
- >>962
単純にそのアプリ、親アプリと子アプリに別けて、親アプリから小アプリを10個起動したら駄目なの? 重い処理があって辛いぐらいの機能があるなら、1つの子画面で親ごと巻き込まれて死んでほしくないし、俺ならプロセスから別ける。 あと、非同期でやってる、の非同期がasyncなら、それは普通にタスクを切り替えるスキの間隔が広いかとか、諸々普通に重いだけじゃないの? await Task.Delay(1)とか呼んでみたら?
- 987 名前:デフォルトの名無しさん [2017/11/06(月) 22:11:16.29 ID:AYpingtn0.net]
- >>966
右辺と左辺の型が違うじゃん
- 988 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 22:40:14.56 ID:Uzk0iC6KM.net]
- >>967
その、プロセスの分け方教えて下さい!
- 989 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 22:48:51.69 ID:voxwNiAb0.net]
- >>969
今更どうしようもないが、次作るときはウインドウの数減らしたほうが良いよ できればメイン一つで画面遷移やタブで処理+ダイアログも同時に開くのは一つだけとかね
- 990 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 22:49:36.85 ID:9FNc82fk0.net]
- 死ね
- 991 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 23:36:54.55 ID:VYb2y8+kM.net]
- >>966
List抽象化はIList<Test> test= じゃないのかよw
- 992 名前:あ mailto:sage [2017/11/06(月) 23:50:31.09 ID:/hMSyilp0.net]
- >>969
プロセスの分け方も何も、今フォーム起こすのに使ってるメソッドの引数を文字列にして、Process.Startで起動引数にして起動するだけのイメージだったけど。
- 993 名前:デフォルトの名無しさん [2017/11/07(火) 01:00:13.01 ID:cTk2bFo+0.net]
- Parallelって非同期でしか使えない?
- 994 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 01:08:19.93 ID:V+BPLIz50.net]
- うんにゃ
- 995 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 01:33:47.43 ID:TUoQCgcU0.net]
- >>975
同期できるのか 使おうかな
- 996 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 02:12:31.67 ID:V+BPLIz50.net]
- >>976
どういう用途を想定してるん?
- 997 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 09:07:17.90 ID:lDMoKAlXM.net]
- そもそもParallelは同期処理に使うもんだぞ
Fork-Joinっていう、同期処理を並列で実行するパターン
- 998 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 12:22:40.45 ID:BMsgFSV6r.net]
- 一晩エスパーしたけどListの抽象化の意味解読できず
ITest[] tests = new Test[n]; IEnumrable<ITest> = new List<Test>(); なら可能だが
- 999 名前:デフォルトの名無しさん [2017/11/07(火) 15:05:18.45 ID:+aQKsyS3d.net]
- リスト抽象化という分かってるようで何も理解できてないお題
- 1000 名前:デフォルトの名無しさん [2017/11/07(火) 15:17:32.57 ID:odkSTBx66.net]
- >>980
新スレ頼んだ
- 1001 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 15:31:40.49 ID:QoqDyUp+0.net]
- >>979
変数名忘れてる!
- 1002 名前:デフォルトの名無しさん [2017/11/07(火) 16:33:19.67 ID:pVSOD8mN0.net]
- 抽象化して継承するのと基本クラスにして継承するのと使い道がわからんよな
- 1003 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 16:46:40.87 ID:j6tNoJ1F0.net]
- スレタイのC#表記は一つだけでいい
形骸化してる
- 1004 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:08:16.46 ID:LeQqgpmT0.net]
- そういえばずっと疑問なんだが
そもそもC#て「シーシャープ」で合ってる? #はNo.だと習ったような... それともスレタイどおり普通に「シーフラット」なのか?
- 1005 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:11:35.30 ID:QoqDyUp+0.net]
- >>985
作った人によると(C++)++で、+を4つ並べて#にしたという で、読み方はシーシャープだと
- 1006 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:14:22.37 ID:4uzCwn7XM.net]
- >>985
正式にはシャープだけど、半角表記にするために井桁でもいいことになってる
- 1007 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:17:34.23 ID:LeQqgpmT0.net]
- ほほう!!ありがとう!
- 1008 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:25:03.73 ID:LeQqgpmT0.net]
- さすがに♭でなくて安心した
- 1009 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:48:12.22 ID:wMlMdyQ30.net]
- >>987
ちょっと違う 半角で表せるようにC#と書いてC Sharpと読むと仕様書に明記されてる C♯とかは間違い
- 1010 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:49:14.24 ID:bwe89n7Ka.net]
- >>986
その話は後付けだったと思うけどw つまりC#(C sharp)っていう名前が決まったのが先で、よく見るとこれって+が四つでインクリメント演算子が2つの ようにも見えるよねって話だったはず
- 1011 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:50:12.84 ID:4uzCwn7XM.net]
- >>990
いや公式な仕様書だと♯表記だよ
- 1012 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:50:44.75 ID:bwe89n7Ka.net]
- >>990
そもそも#と♯が本来別文字かどうか怪しいw 印刷屋さんの都合じゃないのかと
- 1013 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:55:28.06 ID:t6NaVxzvH.net]
- ナンバーサインと音楽記号シャープは
まったく別物でしょ
- 1014 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 21:00:34.38 ID:LeQqgpmT0.net]
- 次スレ建ててみる
1行目 !extend:checked:vvvvv:1000:512 でいい?なお、スレタイ変えない
- 1015 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 21:12:11.14 ID:LeQqgpmT0.net]
- ふらっと C#,C♯,C#(初心者用) Part133
mevius.5ch.net/test/read.cgi/tech/1510056685/
- 1016 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 21:42:13.43 ID:kORl+ylV0.net]
- おつ
- 1017 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 22:58:38.88 ID:JobEFelh0.net]
- 荒れてばかりなのにきちんと次スレの立つこのスレ >>996 乙
- 1018 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 00:26:45.39 ID:lzmkdMJA0.net]
- スレ立ておつ
- 1019 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 00:36:05.51 ID:CLyn8lVQ0.net]
- ぬ
- 1020 名前:1001 [Over 1000 Thread.net]
- このスレッドは1000を超えました。
新しいスレッドを立ててください。 life time: 29日 5時間 35分 9秒
- 1021 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|