[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/25 06:40 / Filesize : 247 KB / Number-of Response : 1019
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2017/11/07(火) 21:11:25.20 ID:LeQqgpmT0.net]
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part132
mevius.5ch.net/test/read.cgi/tech/1507543256/

■関連スレ
C#, C♯, C#相談室 Part95
mevius.5ch.net/test/read.cgi/tech/1508180530/

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

143 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 09:20:22.95 ID:cRgWk2Y70.net]
>>136
だからなんだよ
テメーみてーな発達障害持ってなきゃ英語なんか読めなくてもマニュアルのいみぐれーわかんだよバーカ

英語読めるからぼくちゃんのプログラミングの腕も確かでチュよ褒めてって?

気持ち悪ぃんだよさっさとくたばれガイジ

144 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 09:31:42.36 ID:Y9bMvc7C0.net]
共倒れで丸く収まりましたね

145 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 09:33:07.24 ID:ArqlQl8r0.net]
マ板でやれ

146 名前:デフォルトの名無しさん [2017/11/12(日) 11:02:16.46 ID:7vMgKcBHd.net]
>>142
どんだけコンプレックスあるの

147 名前:デフォルトの名無しさん [2017/11/12(日) 11:21:03.88 ID:V8vWJYoP0.net]
マ板並みの見苦しさ

148 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 11:27:55.80 ID:/Gc52cuR0.net]
tercel-tech.hatenablog.com/entry/2015/04/29/181723

こちらの方のコードを参考に電卓の自動化を試みてるのですが、

mainForm = AutomationElement.FromHandle(process.MainWindowHandle);
のところでエラーが出ます。

型 'System.InvalidOperationException' のハンドルされていない例外が System.dll で発生しました
追加情報:プロセスは終了しているため、要求された情報は利用できません。

何が原因でしょうか?

149 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 11:34:37.51 ID:a3dJlCt1a.net]
>>147
そのページの同じコード動かしてそうなるのか?

メッセージだと電卓が終了してると言ってるけど

150 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 11:41:43.01 ID:VwNKZEQ+0.net]
>>147
電卓("calc")が起動しているか
デバッガでprocessがnullになっていないか
をそれぞれ確認
全部こっちで確かめるのはめんどうなので例えば
Thread.Sleep(DEFAULT_WAIT_TIME);
の部分を
while(process=null){Thread.Sleep(DEFAULT_WAIT_TIME);}
と書き換えてみるとか。いい加減な方法だからデバッグ時以外に勧めないが

151 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 11:44:54.16 ID:VwNKZEQ+0.net]
ヤバい
while(process==null){Thread.Sleep(DEFAULT_WAIT_TIME);}
だったw



152 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 11:52:22.18 ID:/Gc52cuR0.net]
自分の環境はwin10で以前までと仕様が違いますよね。
それが原因かもしれません。
電卓のウィンドウハンドルを直接指定してやったら正常に動きました。
ここの方は親切ですね^^
頑張りたいと思います。

153 名前:デフォルトの名無しさん [2017/11/12(日) 12:15:13.20 ID:j8Tzb3u50.net]
実行してもフォームが固まらないアプリって全部にDoEventsが入ってるわけなん?
メッセージキューは排他のために処理待ちになるん

154 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 12:21:08.98 ID:WcVSvCUs0.net]
>>152
非同期処理してるだけだろw

155 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 12:23:38.91 ID:SMejQ9Z40.net]
>>152
重い処理は別タスク(スレッド)を作って、UIから分離する。

156 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 12:26:44.13 ID:ArqlQl8r0.net]
そいつ金曜日のキチガイだぞ

157 名前:デフォルトの名無しさん [2017/11/12(日) 13:00:56.85 ID:j8Tzb3u50.net]
>>154
さんきゅ

158 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 13:40:23.32 ID:Y9bMvc7C0.net]
キチガイばっかりじゃねーか!

159 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 14:51:20.87 ID:/Gc52cuR0.net]
c++
void __stdcall systemcall(string passbuf,bool wait_flag)

c♯
[DllImport("sample.dll", CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
private extern static int systemcall(string passbuf,bool wait_flag);

これで
systemcall("dir", true);

保護されていないメモリがどうの出てエラーになりますが何がいけないのでしょうか?

160 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 14:54:28.47 ID:Y9bMvc7C0.net]
戻り値

161 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 14:54:56.10 ID:/Gc52cuR0.net]
c♯側のvoidがintになってましたが記述ミスです><

エラー内容は正確には
ハンドルされていない例外: System.AccessViolationException: 保護されているメモリに読み取りまたは書き込み操作を行おうとし ました。他のメモリが壊れていることが考えられます。



162 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 15:01:26.20 ID:zx9GAR9XM.net]
std::stringはマーシャリングできない
C++側でchar*を受け取るラッパーを用意してやる必要がある
C++/CLIもあるけど完全に死んだ技術だからお勧めできない

163 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 15:09:12.05 ID:e5xLDhIK0.net]
>>161
>C++/CLIもあるけど完全に死んだ技術だからお勧めできない

死亡宣言されてるの?

164 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 17:07:08.00 ID:74EZy0fea.net]
>>162
確かそうだよ
メンテナンスされてないから使うなって言われてる

165 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 18:00:59.99 ID:ZC7erpT70.net]
>>163
C++/CLIの件
たまに使うから気になる
ソースか検索キーワードプリーズ

166 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 18:26:13.27 ID:/VKzDrV00.net]
フォームアプリの新規作成は推奨しないってアナウンスはあるんで、それのことじゃないかな。
https://support2.microsoft.com/kb/3001686

C++/CLIそのものはまだサポートされてると思う。廃止されたのはマネージ拡張。
マネージ拡張からC++/CLIへの移行ドキュメントとか、比較的最近の日付でメンテナンスされてるし。

167 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 18:32:26.38 ID:ZC7erpT70.net]
>>165
ありがとう
フォームアプリで使うな、なら納得

168 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 18:59:33.96 ID:yKCfx7dw0.net]
C++/CLI捨てるわけねーだろ

169 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 19:11:39.89 ID:MOg5phwx0.net]
>>167
むしろ維持する意味がわからんが w

170 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 19:29:05.48 ID:e5xLDhIK0.net]
>>168
c/c++のライブラリをラッピングするためにある。

171 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 19:30:38.51 ID:j0JK3 ]
[ここ壊れてます]



172 名前:XOeM.net mailto: http使ったほうがいいよ
今はもうネイティヴコールする時代じゃない
[]
[ここ壊れてます]

173 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 19:35:01.10 ID:MOg5phwx0.net]
>>169
別にC++/CLIなんて要らんだろ

174 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 19:40:46.39 ID:/VKzDrV00.net]
C++/CLIって、なぜか使ったことなさそうな人にやたら叩かれるよねぇ。
自分に必要なけりゃスルーしとけばいいのに、わざわざ「要らない」アピールするのが謎だ。

175 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 19:55:44.38 ID:MOg5phwx0.net]
>>172
ん?
人の意見を聞きたくないなら掲示板なんて見なきゃいいと思うぞ

176 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 19:56:59.33 ID:Y9bMvc7C0.net]
>>172
こういうアピールしちゃうのも謎だよね

177 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 20:01:12.65 ID:yKCfx7dw0.net]
>>171
今からの世代はいらないかも知れないが、今までの世代は必要なんだわ。

過去遺産の再利用でしかないがね

178 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 20:14:47.79 ID:MOg5phwx0.net]
>>175
だからMSも力入れてない(2008の時代はインテリセンスすら使えなかった)し、そろそろ打ち止めってことかと

179 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 20:25:03.86 ID:e5xLDhIK0.net]
>>170
ApacheもNginxもGoogle V8もLinuxもc言語なんだが。
サーバサイドのサービスもc言語のもあるだろ。

180 名前:デフォルトの名無しさん [2017/11/12(日) 20:32:44.51 ID:bU5Cj3UO0.net]
>>170
急に飛躍しすぎ

181 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 20:41:06.51 ID:3TYzHs9Ed.net]
>>177
過去のもの過ぎwww「今」の話題にそれはどうかと思うぞ



182 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 20:52:36.78 ID:e5xLDhIK0.net]
>>179
そうか、NginxもGoogle V8も過去のものなのか
時代は変わったな。

183 名前:デフォルトの名無しさん [2017/11/12(日) 21:09:15.54 ID:H0u2BwIs0.net]
まあ最新技術はPythonやPHPで実装される時代だしな。

184 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 21:32:32.26 ID:j0JK3XOeM.net]
>>177
dotnet関係ないじゃん
Cが要らないんじゃない
相互運用が要らない

185 名前:デフォルトの名無しさん [2017/11/12(日) 21:44:46.58 ID:H0u2BwIs0.net]
いや、Cは要らないだろ。
Pythonが有れば何でもできる。

186 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 21:47:59.87 ID:VOtI22LEa.net]
ダーッ
って猪木かっ

187 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 22:11:19.90 ID:BZnXPKY7d.net]
0以上10未満のdouble値の乱数5個標準出力したい

188 名前:デフォルトの名無しさん [2017/11/12(日) 22:14:51.64 ID:uWcm4jWJ0.net]
String testid= "ABCD" + ".text";

このABCD.textっていう中身は"テスト"っていう文字列が入ってるとします。
でも、testidの中には”ABCD.text"が設定されるのですが、
どうすれば"テスト"という値が入るのでしょうか。

ABCD.textはtextviewで"テスト"という文字をあらかじめ設定しています。

189 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 22:29:14.34 ID:Y9bMvc7C0.net]
stringの識別子名を中身に変換したいって?
そんな方法はないです

190 名前:186 [2017/11/12(日) 22:34:55.34 ID:uWcm4jWJ0.net]
下記の引数でアクセスすると、上記は期待値が入るのですが、
下記のtestidを指定するとおもった結果となりません。
しかし、ABCD.textといった風に直接指定するのではなく変数か何かで間接的に指定したいと思っております。

関数(ABCD.text);
関数(testid);

191 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 22:36:08.48 ID:Y9bMvc7C0.net]
デリゲートを渡すのはどうか



192 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 22:37:37.16 ID:aoPluejS0.net]
>>188
テキストボックスを変数みたいに扱いたいって言ってるのか?

193 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 22:42:23.71 ID:aoPluejS0.net]
c#だとポインタなくなったから
んなことできないんだよね

194 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 22:52:01.90 ID:VOtI22LEa.net]
何言ってるのかさっぱり分からんw
ABCD.textって何ぞねw

195 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 22:53:27.72 ID:aoPluejS0.net]
>>192
多分テキストボックスのtextプロパティ

196 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 22:56:45.91 ID:Y9bMvc7C0.net]
ABCDというidが付けられたTextView(Xamarin/Androidのlabel)
のtextプロパティに"テスト"という文字列が設定されている

これを何らかの方法で文字列で指定して取りたい

197 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 23:00:49.49 ID:VOtI22LEa.net]
>>193
なるほどww

言語能力とプログラミング能力に関連があるって考えに俺は懐疑的だったけど
やっぱり関係が深いのかもしれないねw

198 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 23:04:37.50 ID:aoPluejS0.net]
>>194
無理じゃね?
本当は何がやりたいん?

199 名前:デフォルトの名無しさん [2017/11/12(日) 23:17:26.10 ID:bU5Cj3UO0.net]
>>194
ググればすぐでてくる
https://qiita.com/tokishirazu/items/66a25331d4c78980366e

200 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 23:25:24.74 ID:eFe5AqQqM.net]
>>197
やめろ
糞プログラマが量産される

201 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 23:36:13.84 ID:WcVSvCUs0.net]
>>195
それを理解するには十分な例だったなw



202 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 23:37:57.60 ID:eFe5AqQqM.net]
>>186
"ABCD" + ".text"してるなら
testidの中身はやはり "ABCD.text"です
ただの文字列です
それが勝手に”テスト”になってたら怖いし不便です
プログラムしてて予測がつきませんので"ABCD.text"のままでいるほうが安心です

"ABCD.text"からABCD.textにできる言語もありますが
C#は基本的にそういうのはやらない方向でプログラムするべきです

203 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 00:09:08.69 ID:rsYvFHCwr.net]
全然推測できんw

まさかこう言う事?
string testid= ABCD.text;

204 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 00:11:27.37 ID:nr7xz/FC0.net]
ダックタイピングする言語じゃないからね

205 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 00:25:51.01 ID:KiX40CjjM.net]
>>188
変数に入れたいならtextview型の変数を作っておいてそこに入れよう

textview target = ABCD;

関数(target.text);

206 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 00:26:26.95 ID:rsYvFHCwr.net]

string testid = File.ReadLines("ABCD.text");
????

207 名前:デフォルトの名無しさん [2017/11/13(月) 00:31:47.43 ID:sn+CO+UA0.net]
>>186
String testid= "ABCD" + ".text";
じゃなくて

String testid=ABCD.text;

208 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 00:36:09.38 ID:KiX40CjjM.net]
脳のテストみたいだな
理解できるものだけ理解してる
出来ない人は変なレスしてる

209 名前:デフォルトの名無しさん [2017/11/13(月) 00:38:07.10 ID:sn+CO+UA0.net]
答えはリフレクションだろ?

210 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 01:06:43.08 ID:8PrajDy/0.net]
初心者がやりたがることとしては定番だろう
そんなに意外性はない

211 名前:デフォルトの名無しさん [2017/11/13(月) 01:41:09.93 ID:v8HXsfBj0.net]
>>208
は?



212 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 02:07:05.43 ID:c1Jq4ATj0.net]
>>185
var rand = new Random();
for (var i = 0; i < 5; i++) Console.WriteLine(rand.NextDouble() * 10.0);

213 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 12:29:38.53 ID:JPipM5yVd.net]
Controls.OfType<TextBox>().First(c => c.Name == "ABCD").Text

214 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 16:41:04.48 ID:KG3ltkXj0.net]
昨日DLLについて質問したものです。
おかげさまでとりあえずやりたいことが実現できました。
C♯からも呼び出せるマクロです^^

電卓とメモ帳を自動操作
fast-uploader.com/file/7066114303960/

215 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 17:00:21.29 ID:5C1yWWLzM.net]
parallelの中で更にparallelするとどうなりますか?

216 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 17:19:10.80 ID:3aIhrZk00.net]
CPUの数だけでパラってあとは順番待ち?

217 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 17:48:55.95 ID:c1Jq4ATj0.net]
超Parallelになる

218 名前:デフォルトの名無しさん [2017/11/13(月) 18:28:32.97 ID:SvVWerXL0.net]
プリミティブな配列
例えばstring[]とかってシリアライズ出来ましたっけ?

219 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 19:09:21.17 ID:M6weAJAZM.net]
どんなシリアライザ使うのかもわからんのに答えようがないが
まあそれをシリアライズできないシリアライザはまずないだろうな

220 名前:デフォルトの名無しさん [2017/11/13(月) 20:26:35.00 ID:WRqgiOAAd.net]
>>188
致命的に

221 名前:説明が下手か何も理解してないかのどっちかだと思う
下手に一般化するより今書いてるコードにコメント書いてそのまま晒した方がマシ
[]
[ここ壊れてます]



222 名前:デフォルトの名無しさん [2017/11/13(月) 21:09:23.39 ID:K5+qKqcP0.net]
>>217
ありがとうございます

223 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 21:18:38.99 ID:hP7f8JAdd.net]
asynctaskの中でhttpによるデータ取得して取得したデータを戻り値で返す処理を作成しました。
同時にexceptionによる詳細なエラー内容も戻り値として返したいのですが、どのようにすればよいでしょうか?
戻り値が2つできないので困っております。又、戻り値の型は違います。

224 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 21:22:56.43 ID:9NHQYSXO0.net]
>>220
その2つをプロパティとして持つ型をつくる

225 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 21:23:06.80 ID:qa5qRZI10.net]
>>220
戻り値二種のValueTuple返せば良いんじゃないの

226 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 21:32:13.09 ID:3DwKtl+Id.net]
>>222
WebAPIっぽいし、Tupleだとシリアライズした時にItem1、Item2ってなっちゃわない?

227 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 21:33:28.45 ID:3DwKtl+Id.net]
あ、読み違えてたかもゴメン

228 名前:デフォルトの名無しさん [2017/11/13(月) 21:38:36.94 ID:sn+CO+UA0.net]
>>220
エラーオブジェクトに応答とその他情報突っ込んでthrow

229 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 22:01:26.37 ID:qSvbvuzsa.net]
>>220
こんな型でも返しますかw
public class FunctionResult<T>
{
  public FunctionResult(T val)
  {
    Value = val;
  }

  public FunctionResult(Exception ex)
  {
    Exception = ex;
  }

  public bool HasValue
  {
    get { return Exception != null; }
  }

  private T _Value;
  public T Value
  {
    get
    {
      if (!HasValue) throw new InvalidOperationException();
      return _Value;
    }
    private set { _Value = value; }
  }

  public Exception Exception { get; private set; }
}

230 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 23:32:00.25 ID:1k/7dsAB0.net]
>>220
>同時にexceptionによる詳細なエラー内容も戻り値として返したいのですが

例外throwすれば良いだけでは?

231 名前:220 mailto:sage [2017/11/14(火) 01:18:02.74 ID:Rbk2zOBm0.net]
正常時は別の戻り値、異常時はthrow?で戻り値の型に合った内容が、
格納されるのでしょうか。
呼び出し元で、どのように取り出せばよいのでしょうか。



232 名前:デフォルトの名無しさん [2017/11/14(火) 01:28:44.28 ID:Xx2aI1jk0.net]
>>228
エラー処理で検索

233 名前:228 mailto:sage [2017/11/14(火) 01:36:41.11 ID:Rbk2zOBm0.net]
いろいろお教えいただいているのですが、
www.nowonbun.com/2016/06/c-trycatchthrowfinally.html#!
↑のようなHPとかthrow とかエラー処理で検索しても
戻り値に入れて、それを呼び出し元でどのように見ているのかいくら探してもでてきません。。

try,catchとかでコンソールにエラー内容出力のことではないですよね。。

234 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 01:36:47.07 ID:sw4py9T60.net]
「c# 例外」で検索!

235 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 01:43:50.50 ID:sw4py9T60.net]
例外と例外処理
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/exceptions/index

try 内で、throw すれば、catch で補足できる。
throw した例外クラスが、catch の引数に渡ってくる。
以下の e

catch (例外クラス e)

236 名前:デフォルトの名無しさん [2017/11/14(火) 01:44:37.90 ID:Xx2aI1jk0.net]
関数内で例外をキャッチして新しくException オブジェクト作ってそのInner
Exception にキャッチした例外オブジェクトを突っ込んで作った例外オブジェクトのDataプロパティに返したたいデータ突っ込む
それをthrowして呼び出し元でキャッチしてDataプロパティから取り出す

237 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 01:54:03.16 ID:KYSlLmBD0.net]
>>233
新しくExceptionオブジェクト作るなアホか

238 名前:228 [2017/11/14(火) 01:59:34.75 ID:Rbk2zOBm0.net]
皆さまありがとうございます。いまださっぱりわからないので出直してきます。。
ありがとうございました。

try catchでcatchのとこにエラー情報が入る?まではわかったきがするのですが、
再スローとかInnerExceptionになるとさっぱりでした。

下位の呼び出し先のエラー情報を上位の呼び出し元にthrowすれば戻り値関係なく渡せるといった感じなのでしょうか。。
サイトみててもそうはどうやってもみえなかったのです。

239 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:08:30.45 ID:n7fEU+IFd.net]
>>233
意図的にExceptionのインスタンスを作ってスローするのは間違い
SystemExceptionやNullReferenceException、IndexOutOfRangeExceptionも同様

240 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:11:41.66 ID:L0+XEUiLa.net]
悪口言うつもりはないけど例外の使い方も知らないのに非同期に手を出すとか
順番がおかしいと思うw

241 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:12:51.73 ID:L0+XEUiLa.net]
>>236
そんなのケースバイケースでしょう。
一概に間違いだとする理由がない。
そういうのを教条主義という



242 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:17:16.73 ID:VqdZ1M78d.net]
>>238
Microsoft自身がやめろって言ってんのに、わざわざそれに反することをするのはアホ

243 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:18:50.68 ID:KYSlLmBD0.net]
>>238
c#の例外について少しでもかじったことがあるのならば、アンチパターンだと知ってるはず






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<247KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef