- 1 名前:デフォルトの名無しさん [2014/04/05(土) 22:08:28.72 ID:l3iN8hNI]
- 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問。 質問者自身なんだか意味がよく分からない質問。 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められることがあります、ご了承下さい。 なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 >>980を踏んだ人は新スレを建てて下さい。 >>980が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっとVisual C#,C♯,C#(初心者用) Part110 toro.2ch.net/test/read.cgi/tech/1388377636/ ■関連スレ C#, C♯, C#相談室 Part82 toro.2ch.net/test/read.cgi/tech/1386763696/ ■コード貼るなら↓使ってください ideone.com/
- 152 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 23:22:54.33 ID:kRq+wL8H]
- いまVB.netでプログラミングしてるのですが
C#に移行するとどんなメリットがありますか?
- 153 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 23:27:01.60 ID:COSeIpGW]
- アンセーフなコードが書ける
どんどん差がなくなってきてる 最近は真面目にそれぐらいしか差がない
- 154 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 23:28:38.63 ID:w4l4IAka]
- Roslynの登場でさらに差は縮まる
C#,VB.NETの両方読めるようにしとくと情報が見つけやすい
- 155 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 23:30:33.98 ID:qzRdlrJo]
- >>152
C#でプログラミングする必要はないが、C#が読めるようになると世界が広がる C#が読めれば数々のオープンソースプロジェクトのソースが読めるしJavaも読める また、一般にWebに転がってるC#の情報はVBより品質が高い C#に無い機能は即ちVBでも使ってはいけない機能なので、それが分かっていれば実際使うのがVBだとしても高品質なコードが書けるようになる
- 156 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 23:33:58.18 ID:kADKmax/]
- VB.NetはデフォだとVB6時代の悪しき慣習を引き継いでいるからなぁ
フォームのシングルトンインスタンスにクラス名でアクセス出来るのとかまだあるんだっけ?
- 157 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 23:34:08.54 ID:kRq+wL8H]
- ありがとん
- 158 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 23:34:09.41 ID:COSeIpGW]
- 大事なことを忘れていた
情報検索がしやすいメリットは大きいね 下手くそなコード書く人が少ないのも助かる
- 159 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 23:35:12.43 ID:kRq+wL8H]
- とりあえずVBと併せてC#もやってみます
- 160 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 00:41:08.86 ID:3zL5Y6EA]
- >>152
結局出来ることはほとんど違わないけど、VBのラムダ式とかジェネリックとか AddressOf...とかの冗長さにイラっとしてるならそれから解放される。 あと、このスレでもそうだけどVBに偏見持ってる人は少なくないから、 メンタル的にはその辺も大きいねw
- 161 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 00:45:47.04 ID:JkkhAF2N]
- っていうか、コード書いてみて初めて分かる細かい違いは実は結構あるけど、
移行っていうほど大げさなもんじゃない。 VBが普通に書けるなら1週間でC#もスラスラ書けるようになるはず。
- 162 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 01:02:34.08 ID:Jwmg0nMc]
- >>160
偏見じゃなくて公式だ MS自身がが先陣切ってVBerを馬鹿にしてるからなあ
- 163 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 01:14:29.84 ID:moWamiRQ]
- >>162
公式だから偏見じゃないとはちょっと… 自分もVBからC#に移ったが、情報やサンプルの多さは本当に助かってる 職場ではVBA使うからたまに混乱するが
- 164 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 01:57:22.43 ID:oEVDmUMc]
- >>160
偏見ってたとえば?
- 165 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 03:45:53.21 ID:L+2rWq+F]
- >>164
MS自身がが先陣切ってVBerを馬鹿にしてる とか
- 166 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 07:03:44.22 ID:aQjOrdcV]
- VB.NETは数値計算とか例外処理で旧VBの仕様を引きずっているのでILが汚い
機能が同等だとしてもあえて選ぶ意味は無い
- 167 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 07:27:58.18 ID:B15hE1J5]
- 決裁権持ってる奴はいまだにBASIC(とPHP)は学習コストが低いと思ってるから
あるいは元VBerで信仰心があったり 公平な選択なんて有り得ないんですよ 例えそれが自分の首を締めても
- 168 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 08:23:37.10 ID:x9LZX8vX]
- 別にできることはたいして変わらないんだから、好きな方使えばええやんか
- 169 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 08:38:33.73 ID:Wz2QSiNm]
- VB使ってると自分の将来が不安になる
- 170 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 09:30:35.84 ID:oEVDmUMc]
- VBはStrConv使える
- 171 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 10:12:07.52 ID:8Svp1K2C]
- 偏見持ってるのは一般人も同じじゃね?
VBで作るって言うと遅くなるとかバカにされるけど、C#で作るって言うと安心するとか尊敬される 知らない人ほど「Basicって名前は遅くてCって名前は速い」と思ってるから性質が悪い
- 172 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 12:43:00.67 ID:To415BTT]
- VC#で新しくプロジェクト作ったりしたら
static void Main(string[] args) { } 見たいになってるけど、デフォルトで static void Main(string[] args) { } こうするように出来ますか?
- 173 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 12:54:41.59 ID:Wav400Iz]
- VSのメニューの「ツール」→「オプション」→「テキストエディター」→「C#」→「書式設定」→「改行」
少なくともうちのExpressちゃんだと
- 174 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 13:02:10.40 ID:To415BTT]
- >>173
ありがとうございます
- 175 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 13:14:45.44 ID:HlzGISme]
- C#でつくられたDLLを使うときにVBだと
outのやつとかうまく行かない時ある
- 176 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 17:00:14.97 ID:gE6F061n]
- VBで作られたDLLをC#から呼ぶとき
インデックスつきプロパティとかどうすんだろ
- 177 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 18:38:59.62 ID:hEaBYDdC]
- VB.NetがC#より打鍵量が多いのも、コンパイル後のサイズが大きいのも、
パフォーマンスがC#より悪いのも、ヘルパーメソッド由来の妙なバグがあるのも全部事実であって偏見ではない
- 178 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 20:26:11.53 ID:TDgs+IDt]
- VB の癌は Module
MS にはとっとと切り捨てて欲しい >>176 get_プロパティ名(インデックス)、set_プロパティ名(インデックス, セット値) でいける
- 179 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 22:13:30.39 ID:Wvay+xfF]
- >>170
VBのメリット、これしか見つからないな。
- 180 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 22:17:47.88 ID:9b5aah45]
- まあStrings.StrConvメソッドはC#からでも使えるんだけどな
- 181 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 22:38:48.86 ID:aQjOrdcV]
- Microsoft.VisualBasic.dllだとFileLogTraceListenerを一番よく使う
- 182 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 23:05:07.94 ID:gnPWMjpt]
- >>179
そんなことはないと思うが、2008の頃からは何を書くにもとにかく冗長という 欠点ばかりが目立つようになってしまった。
- 183 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 23:30:13.86 ID:aQjOrdcV]
- 昔からReadOnly PropertyとかAddHandler, AddressOfとかDirectCastとかそんな感じだったでしょ
リフレクション多用するライブラリが増えてきて表面化しただけじゃないの 自動実装プロパティもC#にしかない時期だし
- 184 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 23:30:18.44 ID:O6CdnXOc]
- allocconsole だな
- 185 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 23:32:30.95 ID:Jwmg0nMc]
- >>182
2008からはVBチームがVB嫌いのヘジたんの傘下に入ったからね
- 186 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 23:59:59.59 ID:20pXoq+z]
- >>170
バグ生産機を使うなバカ
- 187 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 01:31:15.85 ID:ql05jL4b]
- >>186
すまん軽率だった これ見て使ってしまう奴が居ないとも限らんしな
- 188 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 20:30:02.51 ID:4wdRys5m]
- MessageBoxIconに自分の用意したbitmapを表示させるにはどうしたらいいですか?
- 189 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 20:44:58.88 ID:YxnFmXEY]
- 無理
それっぽいフォームを自分で作る 文字列を描画したときのサイズを計算してフォームの大きさ変えたりとか楽しいぞ さあ作れ
- 190 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 20:58:57.16 ID:nZNRS/HT]
- 無理ってことはないと思うけど自作した方が早いね。
そうでなくてもOS標準のはモーダルにしか出来ないしいろいろ使いづらい。
- 191 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 21:15:44.44 ID:DE2OqBZn]
- カーソルがピタット止まって気持ち悪い
- 192 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 21:20:16.41 ID:DE2OqBZn]
- 誤爆った
public struct A{ public static string str; public struct B{ public static string str_b1; public static string str_b2; } public class Class{ public string c_str; } public static Class C = new C(); public static Class[] D = new D[2]{ new D(), new D() }; } こんな構造体があるとして A.B.str_b1; A.B.str_b2; A.C.c.str; A.D[0].c_str; A.D[1].c_str; foreach的な感じで値取得ってできない?
- 193 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 21:20:46.50 ID:YxnFmXEY]
- >>190
無理ってことはないと思うならやってみろよハゲ ちなみにあれMessageBox APIを呼んでるだけなんすよヅルムケが
- 194 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 21:35:37.91 ID:FFtq7Y66]
- >>193
正直、お前さんみたいな馬鹿丸出しな奴は相手にしたくない人種なんだが。 恐らくこれと同じ手法でいける。 msdn.microsoft.com/en-us/library/ms996463.aspx
- 195 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 21:37:47.16 ID:YxnFmXEY]
- >>192
それらの静的フィールドをyield return で返すIEnumerable<strign>なプロパティを書けばできるけど 意味があるかどうかはおいといて つかそれ構造体の意味なくね?
- 196 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 21:41:48.71 ID:YxnFmXEY]
- >>194
すこしは自分でコード書いてみたら? 同じ手法でいけるって……全然試してないでしょあなた
- 197 名前:デフォルトの名無しさん [2014/04/24(木) 21:43:57.76 ID:vQpzgEp0]
- >>192
foreach使うための、インターフェースの実装はわかりますよね? あとは、イテレータ使えばできるはずです。
- 198 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 21:49:14.36 ID:VsJIW2Qh]
- >>196
馬鹿だろお前。 だったらてめえでやれ馬鹿。
- 199 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 22:02:34.00 ID:dPj9fjlZ]
- メッセージボックスもウインドウだから、フックかければ改造はできる。
ただ、意味はないからやらないだけだ
- 200 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 15:25:09.99 ID:IiOsF4m2]
- 昔はC#からEXCEL呼ぶのがとてつもなく面倒だったから、VB使う余地があったんだけどね
- 201 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 20:53:42.84 ID:1OgLRHsj]
- >>200
オートメーションは今でもVBの方が向いてるよ。 Option Strict Offの唯一の見せ場といってもいいぐらい
- 202 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 20:59:41.66 ID:H8Us4HAR]
- >>201
つdynamic
- 203 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 21:05:02.54 ID:OpA3+M3d]
- dynamicとオプション引数でもう完全に遜色なくなったねー
- 204 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 21:10:59.66 ID:H8Us4HAR]
- あとrefパラメータへの値渡しな
- 205 名前:デフォルトの名無しさん [2014/04/25(金) 21:18:49.00 ID:E6t4nrBH]
- >>202-203
いや、例えばRange.Valueをdoube[,]として出し入れする、なんて芸当はVBしかできない。
- 206 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 21:27:17.50 ID:BeYqZeZk]
- それエラーチェックをサボってるだけでは
- 207 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 22:19:49.65 ID:+sbVSSo6]
- 激しくどうでも良いことだけど、Excel形式で出力するライブラリは沢山あるのに
Word形式で出力できるライブラリが殆ど無いのが納得いかない。
- 208 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 22:32:43.08 ID:v98LkHcr]
- 2とか知らないけど発売してるの
- 209 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 23:05:26.63 ID:K/dO+JDF]
- そろそろ初心者から脱出したいんですけど、どういうアプリを作ればいいでしょうか?
連番画像ダウンローダー、目覚ましなどは作りましたが、次に作るものが思い浮かばないです・・・
- 210 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 23:15:10.41 ID:BeYqZeZk]
- IQueryable
- 211 名前:デフォルトの名無しさん [2014/04/26(土) 01:10:31.85 ID:L7zgrAvH]
- C#って何が出来れば上級者なの?
- 212 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 01:12:25.53 ID:EJb9DXTR]
- 作りたい物をきちんと作れるなら
- 213 名前:デフォルトの名無しさん [2014/04/26(土) 01:41:03.89 ID:fIjhv7f7]
- >>209
擬似ウイルス
- 214 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 07:48:18.18 ID:tBhXDM1B]
- 足し算する計算機を作った
俺はもうC#上級者
- 215 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 09:57:25.18 ID:6xIFFq9Q]
- >>209
画像レタッチソフト
- 216 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 12:06:32.30 ID:we+cBXG7]
- >>209
マクロにC#を使える軽量高機能テキストエディタ
- 217 名前:デフォルトの名無しさん [2014/04/26(土) 12:39:09.88 ID:4Y2pKqPs]
- /// <summary>
/// 指定したmdbファイルに対してSQLを実行します。 /// </summary> /// <param name="sql">実行するSQL文です</param> /// <param name="dataSource">mdbファイルの絶対パス</param> /// <returns>0:正常終了 1:dataSource未設定 2:SQL文がない -1:システムエラー</returns> こういうコメントを、関数仕様書のようにまとめる事ができる お勧めツールはありますでしょうか?
- 218 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 12:51:59.56 ID:Qdi0GyvQ]
- 以下、たかがサンプルに対する本筋から逸れたどうでもいい突っ込みをどうぞ↓
- 219 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 13:04:22.85 ID:EJb9DXTR]
- >>218
1つの関数にopenからsql実行まで全部いれないでもうちょっと別けろよ
- 220 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 13:14:14.44 ID:yjIemKHI]
- Sandcastle
- 221 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 13:26:01.94 ID:Fm5sej5/]
- returnsの書き方に違和感
- 222 名前:デフォルトの名無しさん [2014/04/26(土) 13:49:19.87 ID:4Y2pKqPs]
- >>219
openからsql実行まで一連の処理を一つの関数にまとめていると 何か不都合が出てくるのでしょうか? なるほど、という不都合が。
- 223 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 15:32:06.24 ID:rj2lEW1Q]
- エラーなら例外使うべきだな
- 224 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 15:36:25.19 ID:Qdi0GyvQ]
- どうですか?
笑えないほど予告通りですね
- 225 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 15:38:21.79 ID:ZzzaXJVH]
- むしろチミが召喚したという
- 226 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 16:28:10.91 ID:we+cBXG7]
- >>220で答え出てた
>>222 File.ReadXXXなんかもあるし、これで全部賄おうって話じゃなけりゃ問題ないでしょう それより処理結果をintで返すのは誰に教わったの?そいつぶん殴ったらいいよ 処理結果なんて誰も見ない SQLがnullだった場合?呼び出す側はこれnullかも・・・って思いつつ呼び出さないよな、だったら事前チェックするから 想定してないのにnullって言われてもどうしようもない だから対処できるメソッドまで例外を投げるんだよ、回復とか通知とか出来るところまで ArgumentNullExceptionを投げるようにして、例外説明用のタグもあるからそれ使おうか
- 227 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 16:32:22.76 ID:lFCRVMF1]
- SQL実行しといて行数すら返さないってINSERT専用なの?
- 228 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 16:42:25.86 ID:Cr6T5VXg]
- おしっこも出るよ(´・_・`)
- 229 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 17:17:16.99 ID:Gwme6n+H]
- >>226
>処理結果なんて誰も見ない それを言うなら、呼び出したメソッドが例外投げるなんて「誰も想定しない」 とも言えるわけでどっちもどっちだと思うよ。 むしろエラーコード方式の方が、そのメソッドではエラーが発生しうることをコード上で 明示できる分優れているとすら言える。 ただ>>217はエラーコードに今時マジックナンバーを使ってる点は問題。 そこはenumか例外オブジェクトを返すようにした方がいいと思う。
- 230 名前:デフォルトの名無しさん [2014/04/26(土) 17:36:23.19 ID:19vcZYji]
- C#に限った話ではないのかもしれないけど
静的ではないクラスの中に定義したメソッドは そのクラスのインスタンスを作成するたびに メモリ上に展開されるの? だとしたら 主にデータを保持するために使うクラスには出来る限りメソッドを定義しないようにして メソッドはそれを提供する専用のクラスに分割して書いたほうが良いの? インスタンスの量が増えてくるとメモリの使用量が気にならないかなぁ・・・と まぁC#でメモリの使用量なんて気にしても仕方ないのかもしれませんがよろしくお願いします.
- 231 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 17:40:40.90 ID:9En+Yllw]
- ポインタしかもたんだろ
- 232 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 17:41:26.63 ID:lFCRVMF1]
- んなわけないだろ
- 233 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 18:00:36.35 ID:oIIaUmxU]
- OOP言語(というか実行環境か)でインスタンスごとに独立した実行コードが
割り当てられるような間抜けな実装してるものなんてあるのか? 誰が考えてもありえない話としか思えないが
- 234 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 18:04:16.55 ID:Qdi0GyvQ]
- vtableでくぐれ
- 235 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 18:14:29.64 ID:lFCRVMF1]
- CLRではメソッドテーブルだ
- 236 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 18:26:31.95 ID:NVDEc6dD]
- >>217
ためしにDoxygen
- 237 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 20:31:07.43 ID:+q1cG7mf]
- >>229
例外オブジェクトを返す?本気?
- 238 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 20:34:09.18 ID:GZ073aKT]
- C#でTwitterクライアントを作りたくて検索したんですが情報が古かったりして出来ません
オススメや参考にしたサイト等あれば教えてください、お願いします
- 239 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 20:37:36.64 ID:lFCRVMF1]
- そのライブラリーはIDが64ビット化したのに対応してないんじゃない?
- 240 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 20:42:52.62 ID:7/lzVZ3W]
- >>237
例外オブジェクトの存在価値が投げられること、ただそれだけだ思ってるのならただの固定観念。
- 241 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 21:15:39.82 ID:lFCRVMF1]
- 投げないならExceptionより軽量高速で誤解を招かない選択肢が一杯ある
- 242 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 21:21:36.37 ID:iOeXFZ4R]
- 中学生か。
そういう批判のための批判なら要らない。 軽量かどうか、誤解を招くかどうか、どちらもそれが例外オブジェクトかどうかとは無関係。
- 243 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 21:26:28.10 ID:lFCRVMF1]
- あえて使う理由は何?と聞いてるんだけど
- 244 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 21:31:09.99 ID:L2eR/wTD]
- あえて例外オブジェクトを使えなんてどこに書いてある。
俺はマジックナンバーではなくenumか例外オブジェクトを返せと書いた。 要するにただ「使える」と言ってるだけだ。 2chで言ってもしょうがないが本当中学生じみた幼稚な奴だな。
- 245 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 21:39:05.02 ID:sw3OTzY3]
- 例外オブジェクトを戻値にする場合って呼び出し側でどうやってハンドリングするの?
Go言語みたいにするの?
- 246 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 21:43:07.54 ID:lFCRVMF1]
- >>244
じゃあ聞くけどマジックナンバーと比較して例外を使うのの何が優れてると思ってるの? 型検査になるから列挙型のように選択肢も絞れないし、動作もマジックナンバーより遅いし 基本エラーを表す型しかないから成功のステータスを細分化できないんだけど エラーメッセージが付加できる点ぐらいしかメリットがないと思うよ
- 247 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 21:49:55.75 ID:yjIemKHI]
- おとなしく例外を投げろよ
SQLの実行が100%成功するわけないことぐらい誰でもわかるだろ
- 248 名前:デフォルトの名無しさん mailto:でもgoogleのコーディング規約では‥ [2014/04/26(土) 21:53:17.85 ID:UjMxSJz5]
- エラーコードは戻り側で無視したらそこでおしまい
例外ならば(例外を食ったりしなければ)普通最上位までまき戻る あと例外を階層的にクラスで扱えばいろいろ便利だね ideone.com/Q5h8n1#li_GQnaUK C++、Java でも例外をとりいれているし、 エラーコードなんて過去の遺物じゃないかな
- 249 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 21:58:49.85 ID:Qdi0GyvQ]
- ここまで燃えるとは予想外ワロタ
- 250 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 22:09:27.96 ID:2szqXR0/]
- >>248
よくある議論だけど、最初から言ってるように、戻り値(エラーコード)ではなく 例外機構を使ったからって、呼び出し側がエラーを想定しなかった場合のリスクに違いはない。 上位まで戻るって、意図的にそうした場合は別として、そうでない場合に 想定されてない例外に対して適切な回復処理なんか出来るわけないでしょ。
- 251 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 22:19:49.67 ID:2szqXR0/]
- 突っ込まれる前に言っとくけど、例外を投げることの利点はプログラムを
強制終了させるパワーを持っていることで、だから回復不可能なエラー発生時には 積極的に例外を投げる意味があるけど、それ以外の場合は本来別に例外を投げることに 固執する意味なんてたいしてないんだよね。 むしろエラーコード方式だと他の値が返せなくなるからという程度の理由しかない。
- 252 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 22:31:03.25 ID:yjIemKHI]
- 詳しいエラーメッセージをのせられない
追加情報をのせられない おきた場所のスタックトレースが取得できない InnerExceptionみたいのができない エラーの発生しうるメソッドを実行するたびに戻り値を確認する必要がある 回復可能なエラーで失敗を想定しないと停止されないので、そのまま適切でない処理が続行される危険がある とか
|

|