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

ふらっと C#,C♯,C#(初心者用) Part128 [無断転載禁止]©2ch.net->画像>4枚


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

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

1デフォルトの名無しさん2017/05/02(火) 22:05:40.13ID:OPFlvhxj
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

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

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part127 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1489498042/

■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured

2デフォルトの名無しさん2017/05/02(火) 22:06:57.98ID:WIY0Y0E6
var = 乙

3デフォルトの名無しさん2017/05/02(火) 22:27:22.22ID:zgEKCDSk
>>1おつ

そういえば、変数名にvarは使えるんだよな
int var = 0;
みたいなコードを見てギョッとしたおもひで

4デフォルトの名無しさん2017/05/02(火) 22:30:28.80ID:eRbWh9gN
responses.Where(i => i == 1).Select(x => "乙");

5デフォルトの名無しさん2017/05/02(火) 23:43:06.05ID:Tfdj4LyE
varがダメって人は変数名に型名つけたりするんかな
string hogeStr=getHogeMoji();

6デフォルトの名無しさん2017/05/02(火) 23:49:26.07ID:6QYZnmvB
ハンガリアン記法かよ

7デフォルトの名無しさん2017/05/02(火) 23:57:35.90ID:7jrBakQ7
var使うなもハンガリアンも同じ(間違った)問題意識ではあるね

8デフォルトの名無しさん2017/05/03(水) 00:31:58.92ID:kdqGhQXm
Linq使うなラムダ使うなvar使うな保守できない読めないって自分がバカなのをまず自覚してほしい

9デフォルトの名無しさん2017/05/03(水) 04:08:09.16ID:yIaEn83J
>>5
逆だろ
そんなの付けたくないのでしっかり型を明記して欲しい

10デフォルトの名無しさん2017/05/03(水) 04:10:11.89ID:tOtENMmp
>>8
俺からするとわざわざ読めない人増やして何がやりたいのかな?って思う

11デフォルトの名無しさん2017/05/03(水) 06:47:51.71ID:zkWNfzXl
>>10
俺からするとその程度で読めなくなるようなカスを集めて何がやりたいのかな?って思う

12デフォルトの名無しさん2017/05/03(水) 06:56:51.11ID:m1a7RzgX
>>10
>>11
同意件だわ。

13デフォルトの名無しさん2017/05/03(水) 07:00:27.28ID:Gc6xuRHP
>>9
型明記しなきゃわからないなら
画面内に型が表示されていないとわからないレベルでしょ?

14デフォルトの名無しさん2017/05/03(水) 07:02:38.18ID:EX/3Lz+X
まだ続けるのー><

15デフォルトの名無しさん2017/05/03(水) 08:31:00.19ID:VaB9PVwh
>>5
Javaかな?

16デフォルトの名無しさん2017/05/03(水) 10:33:26.27ID:TVGKVl2u
int x = hoge?.Value ?? -1;
これ一般的だよね?

17デフォルトの名無しさん2017/05/03(水) 11:02:17.93ID:a1mhcLpw
普通 var x = hoge.Value ?? -1;

18デフォルトの名無しさん2017/05/03(水) 12:08:34.66ID:9NtpzxGG
他人(MS)が作った言語に文句ばかり垂れてるヘタレ底辺
嫌なら自分で好みの言語作ればいいのに

19デフォルトの名無しさん2017/05/03(水) 12:18:23.58ID:O+hXuTVQ
>>17

hogeがnullだとぬるぽだから16が正解

20デフォルトの名無しさん2017/05/03(水) 12:34:48.91ID:IhwilyPb
>>18
そういうの滲み出てるからc#で作れるものって少ないじゃん
windowsアプリとゲームぐらいじゃないの?

ストアアプリも失敗
silverlightも失敗
WPFも失敗
Azureも失敗

c#で作れるものってWindowsFormとゲームしか残ってないよな?

21デフォルトの名無しさん2017/05/03(水) 12:39:43.55ID:32xBqvCb
>>20
ゲーム作れれば十分だと思うがOSとかドライバ作れないとだめなのか

22デフォルトの名無しさん2017/05/03(水) 13:20:53.94ID:VaB9PVwh
>>20
API

23デフォルトの名無しさん2017/05/03(水) 13:39:58.01ID:FWXQV7fR
>>17
こういう「リファクタリング」する人よくいるわ
なぜそう書かれているのかをあまり考えず簡略化してしまって結果動作が変わる

24デフォルトの名無しさん2017/05/03(水) 13:49:44.09ID:yMHwWAzs
>>16
まあ一般的になってきたかな
var x = hoge?.Value ?? -1;

25デフォルトの名無しさん2017/05/03(水) 14:27:23.36ID:PAB4dkAH
>>24
-1が何を指してるかわからないマジックナンバーだから本来は許されないが
MSも同じことをやってる
これは完全に悪習

たちが悪いやつになると-1を前提にして計算してぱっと見何をやってるかわからなくなってる
cのころifの判定に数式を入れて分岐してたのと同じぐらいの害悪

c#はifの判定結果がboolじゃないとコンパイラエラー
bool?もダメ

26デフォルトの名無しさん2017/05/03(水) 14:30:14.36ID:PAB4dkAH
nullをわざわざはじいておきながら-1というマジックナンバーを導入している
変な風習
将来はなくすべき

27デフォルトの名無しさん2017/05/03(水) 14:50:58.16ID:32xBqvCb
また俺がルールさんがやって来た

28デフォルトの名無しさん2017/05/03(水) 14:55:55.52ID:PAB4dkAH
仮に
var x = hoge?.Value ?? -1;
として-1が返ってきたとしてそれをそのまま使うのか?

そのあとif(x==-1)するなら最初からvar x = hoge?.Value ?? -1;なんてしないで
if(hoge==null)したほうがいい

29デフォルトの名無しさん2017/05/03(水) 14:59:59.06ID:Qe/Rl4Fq
ワッチョイが消えたせいで ID:PAB4dkAH みたいなヤツをNGに登録するのが面倒になったな

30デフォルトの名無しさん2017/05/03(水) 15:02:18.92ID:PAB4dkAH
理解できないならいいよ

おまけ
pythonとかじゃ配列にマイナス添え字が使えるので
indexの見つからない結果に-1は不適切

31デフォルトの名無しさん2017/05/03(水) 15:05:37.18ID:Qe/Rl4Fq
理解できるできないの問題じゃねーよ
ここは「初心者用」なんだよスレチ野郎はさっさと消えろ

32デフォルトの名無しさん2017/05/03(水) 15:08:37.35ID:PAB4dkAH
初心者の皆様へ

意味を持たない自分が勝手に決めた俺俺数字 -1は使わないようにしようね
こういうのはマジックナンバーと言って使うなとそのうち教わります

33デフォルトの名無しさん2017/05/03(水) 15:14:01.74ID:EjDQxWog
初心者はまず使わないし式の意味わからないだろうから心配いらんと思うが

34デフォルトの名無しさん2017/05/03(水) 15:15:04.81ID:PAB4dkAH
var x = hoge?.Value ?? -1;が一般的とか使われるようになってきたとか
初心者に間違った知識を植え付けないほうがいいでは?

35デフォルトの名無しさん2017/05/03(水) 15:20:49.03ID:n3jwfd5I
日本語からまともにしとけタコ

36デフォルトの名無しさん2017/05/03(水) 15:23:23.86ID:n3jwfd5I
>>21
そもそもAzureは好調だがどこの世界の話をしてんだ
http://www.itmedia.co.jp/pcuser/spv/1705/01/news035.html

37デフォルトの名無しさん2017/05/03(水) 15:24:15.23ID:PAB4dkAH
俺のことはC#でググれとか言ってる岩永氏も同じレベルなんだからしょうがないわな・・・

38デフォルトの名無しさん2017/05/03(水) 15:24:54.24ID:n3jwfd5I
日本語からまともにしとけタコ

39デフォルトの名無しさん2017/05/03(水) 15:37:34.40ID:aKL6bPvW
まさか真面目に言ってるとは思わなかったw

var x = hoge?.Value ?? -1;
この-1がマジックナンバーかどうかはケースバイケース。
変数名がちゃんとしていて意図が読み取れれば-1の意味は自明な場合もある。

しかし、ID:PAB4dkAHみたいなのが職場におったらやりづらいねw

40デフォルトの名無しさん2017/05/03(水) 15:44:35.37ID:IGshBH22
全体の意図把握せずに一行だけ見て「初心者はこれをやってはいけない」
とか職場で言っていたら無能どころかキチガイ

41デフォルトの名無しさん2017/05/03(水) 15:48:17.50ID:aKL6bPvW
どんな道具も使い方次第で凶器にもなりうるわけで、
極端な話、こういう構文だから、こういう書き方だから一律にわかりづらいなんてことはなく、
すべてがケースバーケースなんだけど、そういう実質を自分の頭で判断する能力がない人が
羹に懲りてなますを吹いちゃうと、こういう形式にこだわるセキセントリックな奴になっちゃうんだろうね

42デフォルトの名無しさん2017/05/03(水) 16:30:05.97ID:QAOFniPk
>>30
サンプルと言うことが理解できないバカ w

43デフォルトの名無しさん2017/05/03(水) 16:36:15.72ID:0sDWrHda
ID:QAOFniPk と言う無職

44デフォルトの名無しさん2017/05/03(水) 16:45:45.69ID:0sDWrHda

45デフォルトの名無しさん2017/05/03(水) 16:57:56.10ID:AgXd40Zr
言語の新機能が設計から実装に落とし込むための機能じゃなくて
厨房の工作レベルの計画性しかなくて呆れる
ラムダ式、var、linqとか
この設計を実現するために、この言語にはこの表現が必要なんだ!

って代物か?
なんか開発経験の浅い素人がちょっと変わった表現入れて見ましたレベルのゴミじゃね?
って言うのはさ、想定する理想の設計書が言語から見えない
こんなの続けてたら早めに終わるよ

46デフォルトの名無しさん2017/05/03(水) 17:01:41.68ID:0sDWrHda

47デフォルトの名無しさん2017/05/03(水) 17:07:52.89ID:FWXQV7fR
>>27
バカの>>17がバカを指摘されて発狂したんだろ

48デフォルトの名無しさん2017/05/03(水) 17:22:53.59ID:yMHwWAzs
>>43
無職としか言えないかわいそうな人乙

49デフォルトの名無しさん2017/05/03(水) 17:34:31.33ID:0sDWrHda
夕食

はい、無職いがい言えました

少ない情報でそんな結論に到達する
 お前の頭のほうが可哀想だろ?

50デフォルトの名無しさん2017/05/03(水) 17:38:25.57ID:lLL2BOd0
人にばっかり矛先むけてても仕方ないだろうに

51デフォルトの名無しさん2017/05/03(水) 17:54:58.75ID:n3jwfd5I
まずC#書いてから参戦!してくれよな〜たのむよ〜前スレ514さんよ〜

52デフォルトの名無しさん2017/05/03(水) 17:59:11.59ID:I7VBe2qC
>>51
あれ結局XmlNodeListだとvarで表示されないって話だった

53デフォルトの名無しさん2017/05/03(水) 18:03:08.53ID:yMHwWAzs
夕食?
本人は面白いんだろうな...
こんな少ない情報で語彙のレベルがわかるのも珍しい w

54デフォルトの名無しさん2017/05/03(水) 18:10:02.53ID:0sDWrHda
秋田

55デフォルトの名無しさん2017/05/03(水) 18:27:33.19ID:lLL2BOd0
まだvarの話してるの?

56デフォルトの名無しさん2017/05/03(水) 18:30:30.49ID:tOtENMmp
var使うためにはvarのためにコードを記述しないと動かない
var出ないコードで動いてもvarで動くとは限らない
のでますます使いたくない

57デフォルトの名無しさん2017/05/03(水) 18:31:45.96ID:rxLV1vbf
>>56
varのためにコードを書くって何?

58デフォルトの名無しさん2017/05/03(水) 18:37:25.34ID:FY5OfGG/
>>57
XmlNodeListをforeachでvarが使えるように改造してみればわかるって

59デフォルトの名無しさん2017/05/03(水) 18:42:16.99ID:b5hGVml5
ジェネリックの話は恥かくだけなんだからやめればいいのに

60デフォルトの名無しさん2017/05/03(水) 19:33:55.40ID:yMHwWAzs
>>52
それじゃなくて
>> 514
> カーソル当てて見れるのって実行中だけじゃねっけ?
でしょ
まあデータヒントと勘違いしたんだろうけど恥ずかしいのには変わりないわな

61デフォルトの名無しさん2017/05/03(水) 19:34:18.34ID:wynseuBM
恥を書いたと思わなければ怖くない

62デフォルトの名無しさん2017/05/03(水) 20:53:55.67ID:n84gKlGC
>>60
でも実行中しか見れないのもあった気がするから
今度メモっとくよ
そのおかげでいちいち実行して型調べてってやってた記憶がある

63デフォルトの名無しさん2017/05/03(水) 21:34:58.23ID:VaB9PVwh
>>62
dynamicと勘違いしてね?

64デフォルトの名無しさん2017/05/03(水) 21:37:52.83ID:R0gUGf9P
>>63
それも含めて見とくよ

65デフォルトの名無しさん2017/05/04(木) 02:39:11.85ID:EbOwgvak
>>58
varが使えないのは型変換やキャストが伴うときだけのはず
キャストならもちろん実行例外になる可能性もある
「varでないコードで動いてもvarで動かない」時は型変換伴う特殊なコードを記述してる時だから、それを気付けるのはむしろメリット

そもそも、今XDocumemtじゃなくてXmlDocumentを使う必要って何かあるんだっけ?

66デフォルトの名無しさん2017/05/04(木) 08:50:18.79ID:FtLavEYm
頭とコードが古い時

67デフォルトの名無しさん2017/05/04(木) 08:58:08.55ID:3md+aC3g
>>65
なんでお前が文句言ってるの?w

68デフォルトの名無しさん2017/05/04(木) 09:28:21.01ID:CuDuyn93
他でやれ

69デフォルトの名無しさん2017/05/04(木) 09:35:08.90ID:F88t7MBG
>>66
なんか笑たわ

70デフォルトの名無しさん2017/05/04(木) 12:55:34.05ID:jK3vPaI/
実のない議論がよっぽど好きなんだろうな
「絶対使え」VS「絶対使うな」になっている人もいるみたいだし
こんな連中が仕事でやっているとか信じられなーいw

71デフォルトの名無しさん2017/05/04(木) 12:56:57.95ID:3md+aC3g
>>70
お前はどういうスタンスなの?

72デフォルトの名無しさん2017/05/04(木) 13:51:19.59ID:CuDuyn93
追及がうちのオカンみたいで嫌。
他でして

73デフォルトの名無しさん2017/05/04(木) 19:53:19.56ID:OUarxtpR
議論はこっちへ行ったほうがいいでは?

C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/

74デフォルトの名無しさん2017/05/06(土) 03:15:29.49ID:pFOk+Mr/
<MouseBinding Gesture="LeftClick" Command="{Binding PlayCommand}" CommandParameter="{Binding ElementName=mediaElement}"/>
ViewModelでmediaElement.Play()
とやっているんですが、ViewModelで直接GUIを操作するのは良くないですか?

75デフォルトの名無しさん2017/05/06(土) 04:19:00.57ID:JAj3fJt6
>>74
いいんじゃねぇの
どうせVisibilityとかBrushとかVMに持ってるんだろ?
それらと同列だよMediaElementだって。

完全に分離するならVMでSystem.Windowsをusingした時点で負け

76デフォルトの名無しさん2017/05/06(土) 08:26:31.08ID:2V5tVO5D
実はIValueConverterインターフェイスの指定がなかったオチだったりしてな

77デフォルトの名無しさん2017/05/06(土) 11:00:33.89ID:T6Jlq3rr
>>75
PointとかRectぐらいVMで使ってもいいじゃん…

78デフォルトの名無しさん2017/05/06(土) 12:57:36.09ID:8ByKHzLH
randomって今時デフォシード秒単位なのかよ
毎回インスタンス作ってたウンコプログラムで同じのがで続けて困ってたw
まぁバグを分かりやすくしてんのかな?

79デフォルトの名無しさん2017/05/06(土) 13:10:52.42ID:dk2lz/cl
後方互換性ってやつじゃね

80デフォルトの名無しさん2017/05/06(土) 18:39:57.03ID:fDXZMCmx
C#でOleDbConnection使わずにmdbファイルにアクセスする方法ってありますか?

81デフォルトの名無しさん2017/05/06(土) 19:05:23.36ID:T6Jlq3rr
OdbcConnection使えば良いよって話?

82デフォルトの名無しさん2017/05/06(土) 20:02:04.84ID:rojhZA3i
VBSを呼べば

83デフォルトの名無しさん2017/05/06(土) 22:26:19.40ID:E68EYTdk
varの話してもいいですか?

84デフォルトの名無しさん2017/05/06(土) 22:34:35.43ID:OtjUCwsv
スレチ

C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/

85802017/05/07(日) 03:10:43.47ID:GwfheDvL
作った方はもう居ないんですがOleDbConnectionでConnectメソッドを呼び出しているわけではないんです
なのにmdbファイルから読んでいるみたいなのです。変数の定義元に行っても以下のように書いてあり、拡張子は.csではないです
hogehoge {
}

これってどうやってmdbファイルにアクセスしているんでしょうか?エスパーになりますがよろしくお願いします

86デフォルトの名無しさん2017/05/07(日) 09:25:44.48ID:2TKwZSPE
1.OleDbConnectionクラスなの?派生なの?
2.それはOpenメソッドを呼び出しいるの?
3.mdbファイル名がプロジェクトの定数に設定されてない?
4.変数の定義元のファイル拡張子ってなに?

どーせDSN接続とか、接続文字列リソース内にありましたとかじゃねーの

87デフォルトの名無しさん2017/05/08(月) 11:19:55.50ID:wMNFDEx6
entity frameworkじゃないの

88802017/05/08(月) 19:27:02.19ID:omDRiSwu
拡張子はxsdでした
3みたいに定義はされていましたが何なのかわかりません

89デフォルトの名無しさん2017/05/08(月) 20:33:49.00ID:lAGwTMvd
entity framework

90デフォルトの名無しさん2017/05/11(木) 00:02:37.39ID:In0r9D2X
初心者質問で申し訳ないのですが
form1が親フォーム、form2が子フォームの時
form1にform1のコントロールを操作する関数があり、form2からその関数を実行するには、form2のコンストラクタにform1のオブジェクト(f1)を渡せばf1.hohe()のように実行出来るのでしょうか
適切な方法がいまいちわかりません。どなたかご教授頂けると助かります

91デフォルトの名無しさん2017/05/11(木) 00:17:22.57ID:1Awx/Lc+
>>90
コントロールを操作するメソッドをpublicかinternalにしておく
そのうえでForm1のメソッドに繋げる
http://tukaenai-pg.cocolog-nifty.com/blog/2006/05/c__2de6.html
これはコントロールの値の参照の場合
メソッドを使う場合は.textBox1.Text;の部分を差し替えればいい

92デフォルトの名無しさん2017/05/11(木) 00:18:13.36ID:deUGmbrA
varの話してもいいですか?

93デフォルトの名無しさん2017/05/11(木) 00:20:37.09ID:tLIafHnt
>>90
確かにForm1のメソッドをpublicかinternalで公開して、Form2がForm1のインスタンスを
何らかの方法で持てば実現できるけど、あくまで一般論で言えばFormのメソッドを
外部に公開するのは不適切な場合が多いと思うよ

普通は、

Form1からモデルMのメソッドを呼び出す

Mが何らかのイベント発生

Form2はMのイベントを受信して何か処理をする

こんな流れじゃないの?

94デフォルトの名無しさん2017/05/11(木) 00:27:17.35ID:OONLth3D
いいです🙆

95デフォルトの名無しさん2017/05/11(木) 00:40:50.67ID:Wt/R3NkD
>>91>>93
ありがとうございます

>>91で紹介された方法で実行しようと考えてたのですが、>>93の指摘からform2にイベントハンドラを追加してコールバックイベントで実行するのが良さそうですね
再度検討してみます

96デフォルトの名無しさん2017/05/11(木) 09:10:31.71ID:HCpPVWHs
>>93
Form1からモデルMのメソッドを呼び出す

Mが何らかのイベント発生

Form2はMのイベントを受信して何か処理をする

Form2がなんらかのイベント発生

Mがイベントを受信してイベント発生

Form1がMのイベントを受信してコントロールを操作する

アホみたいな設計だな

97デフォルトの名無しさん2017/05/11(木) 09:20:01.82ID:MNNhzL+Y
なんかもっとイケてる方法ないの?
その方法カッコよくないよね

98デフォルトの名無しさん2017/05/11(木) 09:24:12.50ID:HCpPVWHs
>>90
普通に
form2.form1Action+=()=>{form1.checkBox1.Checked=true;};
でいい

99デフォルトの名無しさん2017/05/11(木) 09:35:36.76ID:HCpPVWHs
form2はform1のコントロールの一つであるという考え方でいい

100デフォルトの名無しさん2017/05/11(木) 10:04:09.58ID:bPF/k6WN
まあ、どうしてVとMを分離するのか理解してないとそういう発想になるね
なんでそんな回りくどいことをする必要があるんだ!って(笑)
そういうのは部分最適って言うんだけどさ

101デフォルトの名無しさん2017/05/11(木) 10:37:36.53ID:k8LkF3Rq
場合によるでしょ
社員のセクハラが発覚したら人事から懲戒処分が出るみたいな処理を>>98みたいな実装するのは最悪だけど、
ビューに閉じた処理なら別にいい

102デフォルトの名無しさん2017/05/11(木) 10:55:36.58ID:bPF/k6WN
あんまり思いつかないけど、そういうケースもないことはないかもね。

103デフォルトの名無しさん2017/05/11(木) 11:15:50.68ID:Nmw4yzni
そもそも画面を2つも3つも作る設計が駄目
って中々言いにくいんだよな
メインの画面遷移とウインドウは有っても確認ダイアログ程度ってのが使いやすいんだが

104デフォルトの名無しさん2017/05/11(木) 15:58:59.55ID:ZJ7VD95O
MDIとかツールウインドウとかさすがにねー

105デフォルトの名無しさん2017/05/11(木) 19:41:47.03ID:RBlNyTa4
デザインパターンってそんなに大事ですか?

106デフォルトの名無しさん2017/05/11(木) 19:46:42.73ID:7SeHLwtP
大事だけど、こだわりすぎると馬鹿の一つ覚えって言われるだろうね

107デフォルトの名無しさん2017/05/11(木) 19:51:33.23ID:Fmy4inGe
すべてをあてはめることが正とまでは思わんが過去に生まれて今まで生きてる考えは大切にしたい

あと意志疎通するときに共通言語があるとやりやすいってのもある

108デフォルトの名無しさん2017/05/11(木) 22:34:16.25ID:Wt/R3NkD
Formアプリケーションのdatagridviewなんですが
プロパティである列だけボタンセルにしたとき、初期処理で空の100行を作るとボタンにした列に全てボタンが並びます
これを最初の列に値が入ってるところだけ、ボタン表示させることって出来るでしょうか?
例えば100行のうち最初の10行だけセルに値が入り、ボタンも10行目までしか表示されないといった感じです

109デフォルトの名無しさん2017/05/11(木) 22:38:08.56ID:/9yi1ILC
>>98
ありがとうございます
指導頂いた方法でも試してみます

110デフォルトの名無しさん2017/05/11(木) 22:51:43.92ID:RY17F3BC
リークする可能性がない場合でもイベントにラムダ式を登録するのは
なんか嫌だね。

これはvar使うなみたいな教条主義じゃなくて、実際問題
コードの見通しを悪くするだけの場合の方が多いと思う。

111デフォルトの名無しさん2017/05/11(木) 23:07:09.06ID:7mMTZtUa
突然どうしたの?

112デフォルトの名無しさん2017/05/11(木) 23:12:34.95ID:deUGmbrA

varに殺された人の怨念が渦巻いておる

113デフォルトの名無しさん2017/05/12(金) 01:12:38.15ID:Z8esmvE1
>>111
突然起こるから発作だろう

114デフォルトの名無しさん2017/05/12(金) 01:26:40.80ID:6t2nmHwz
直前にイベントにラムダ式食わせるコードが出てきてるのにアホか

115デフォルトの名無しさん2017/05/12(金) 03:37:10.22ID:buo/LFts
>>105
だいたいこんなんある、とだけ知っておいて必要時に調べる程度でいいと思う

無理になんかのパターンに当てはめようとしてクラス図書きました
結果いろいろマズくてAdapterで接ぎました
とか笑い話にもならん

116デフォルトの名無しさん2017/05/12(金) 05:08:51.27ID:TAIwSt7O
>>114
そんなのないよ

117デフォルトの名無しさん2017/05/12(金) 05:23:52.24ID:QHw9MbYN
横レスだが、>>110の直前、>>109でお礼言ってる先(>>98)に件のコードあるけど。。。

118デフォルトの名無しさん2017/05/12(金) 05:35:38.08ID:3U2TPXlN
イベントじゃねーw

119デフォルトの名無しさん2017/05/12(金) 15:28:11.73ID:rar2tz1g
https://msdn.microsoft.com/ja-jp/library/system.collections.ienumerator(v=vs.110).aspx

このスクリプトの、Peopleクラスのprivate Person[] _people;に
Personクラスのインスタンスを3つ代入した後の動作が全くわかりません。
どのタイミングでGetEnumerator()が呼び出されるんでしょうか?
GetEnumerator()が呼び出されたとしても、public Person[] _people;に値が代入されてから
IEnumeratorの実装メソッドがどこで呼び出され、どのように互いに影響してるのかわかりません。
どなたか教えていただけますでしょうか?

120デフォルトの名無しさん2017/05/12(金) 15:39:20.58ID:RyB9wBnj
>>119
foreach文はGetEnumeratorやIEnumeratorの実装メソッドの呼び出しに展開されるので、そこで呼び出されてる

どう展開されるかはググれば出るだろうから調べてみて

121デフォルトの名無しさん2017/05/12(金) 16:16:55.87ID:1e2m781m
>>119
まずforeachはpeople.GetEnumerator()を実行して
IEnumeratorを取得します
あとはそれを使って反復処理を実行します
PeopleクラスはPeopleEnumというEnumeratorを使っていますよと示しているだけ

122デフォルトの名無しさん2017/05/12(金) 18:09:13.09ID:rar2tz1g
>>120>>121
GetEnumeratorの呼び出しのタイミングが解かったら、IEnumeratorの処理もなんとなく理解できました。
ありがとうございました。

123デフォルトの名無しさん2017/05/12(金) 20:01:54.80ID:jvu/Dkon
SQL Server 2012にあるデータ(ビュー)を取得し、それを条件で絞ったあとDataGridViewで表示させたいのですが自分の知識不足かうまくできません
DataGridViewのDataSourceプロパティにDataSetを指定するのが一番簡単なのかと思うのですが、クエリを動的に指定できず・・・挫折しました

124デフォルトの名無しさん2017/05/12(金) 20:03:15.18ID:jvu/Dkon
途中で書き込んでしまいました
どうすればもっと簡単にできるでしょうか?

125デフォルトの名無しさん2017/05/12(金) 22:17:23.05ID:TH+jg9IW
DataSourceにできるかどうかしらんが

DataView使う
LINQ(to DataSet)でデータセットいじる
DataSetやめてEFつかう

お好きな方法でどうぞ

126デフォルトの名無しさん2017/05/12(金) 23:01:40.87ID:zdRCMQUQ
無理せずAccess使えばいいのに
遥かに簡単にまともなものができるよ

127デフォルトの名無しさん2017/05/13(土) 00:04:19.15ID:7TpNqaHY
>>123
DapperとLinqを使った方が簡単だよ
DataSetは精神鍛錬のための苦行以外では使い道がない

128デフォルトの名無しさん2017/05/13(土) 01:03:37.34ID:a0E3nt9G
Dapper+SQLiteのお手軽感
EFもSQL Serverも二度と使いたくない

129デフォルトの名無しさん2017/05/13(土) 01:35:24.98ID:sHoGv97L
タスクバー常駐型のアプリを作ってます。
起動時に確保したヒープを起動中は保持し続けてるのですが、
この領域が長期間運用中もビット化け等を起こしていないかチェックするには
どのような方法があるでしょうか?

またECCメモリだとビット化けの心配は無いのでしょうか?

130デフォルトの名無しさん2017/05/13(土) 02:44:06.49ID:D+nN5dSS
CRCとか?
2倍の領域を確保してミラーリングみたいにするとか?
どっちにしろC#向きじゃないような気が...

131デフォルトの名無しさん2017/05/13(土) 02:58:37.95ID:a/q/GLOb
>>129
ECCメモリーは、訂正可能なエラーは文字通り訂正されるから、化ける確率はずっと低くなるけど、
稀に訂正不可能なエラーが発生する場合もあるから、全く化けないわけじゃない。

1321292017/05/13(土) 03:16:23.00ID:sHoGv97L
C#でDictionary構造を保持しています。
Dictionaryに格納しているデータは任意のタイミングで変更されます(頻繁ではない)。

データに変化があるたびにDictionaryをバイト配列に変換してサムを算出し、
定期的にチェックサムするっていう方式はビット化けに対して有効でしょうか?

133デフォルトの名無しさん2017/05/13(土) 06:08:23.80ID:xwwURnHm
>>132
誰がDictionaryにアクセスすんの?
bit化けはマジで起こってるの?

134デフォルトの名無しさん2017/05/13(土) 06:43:20.62ID:R3eq2uIx
>>132
メモリが勝手に化けることを想定したらプログラミングは全く成り立たないので無視
ユーザーコードからの普通の書き込みについては、Dictionaryを直接晒さずに特定のメソッド経由で書き換えさせるようにすれば確実にフックできる

135デフォルトの名無しさん2017/05/13(土) 06:56:04.40ID:499UT8S9
>>132
こういうレイヤを分けて考えられない奴っているよな
特にインフラ系から来た奴にありがち
「変数が多いなら抽象化しろ」という考え方が理解できず、
if一行足せば済む問題を必死でネットワークの設定弄り続けて回避しようとする

136デフォルトの名無しさん2017/05/13(土) 07:45:25.35ID:RjzTmCQE
>>135
前半はわかるけど後半は何を言ってるのかさっぱりわからん

137デフォルトの名無しさん2017/05/13(土) 10:22:57.83ID:hW1ZB19M
みんなー
Fluent Design Systemってどう思う?

138デフォルトの名無しさん2017/05/13(土) 10:28:08.84ID:8MiIMg7T
デザインは語るよりまともな実例を出してくれと思う

139デフォルトの名無しさん2017/05/13(土) 10:31:06.98ID:hW1ZB19M
やっぱりXAML習得は必須になってくるのかな

140デフォルトの名無しさん2017/05/13(土) 10:34:05.94ID:hW1ZB19M
>>138
nugetでサンプル例を公開みたいな流れで、プロジェクトをダウンロードしても内容が訳ワカメなんだろうね。

( ノД`)…

141デフォルトの名無しさん2017/05/13(土) 11:11:42.14ID:+l0G/mJC
>>140
動画出ているけど、メトロ3Dって印象だな

142デフォルトの名無しさん2017/05/13(土) 11:35:29.87ID:0mphNaBc
>>139
要らないよ

143デフォルトの名無しさん2017/05/13(土) 11:45:53.97ID:rBo1iP3S
文化の違いがどうしようもない

日本人は縦横の線が入った表に慣れてる
アメリカ人は線がない方が好み

144デフォルトの名無しさん2017/05/13(土) 11:49:23.12ID:CaysMjy5
ラテン系の書体はベースラインがきっちり出るから線いらんのよね

145デフォルトの名無しさん2017/05/13(土) 11:53:44.13ID:dy2hOgSI
>>143
WPFのListViewにデフォルトで罫線が無いのがその理由とかまさかないよな・・・

146デフォルトの名無しさん2017/05/13(土) 13:45:34.70ID:imuXkIUh
そもそもWPFは論理的レイアウトに隅々まで拘った極めて欧米的な設計思想で作られていて、
Excel方眼紙を愛する未開の列島民族が手を出しちゃいけない代物だよ

147デフォルトの名無しさん2017/05/13(土) 14:03:04.20ID:0mphNaBc
確かに国産のアプリってUIのレイアウトがしっちゃかめっちゃかだよな
画面だけ見てもモデルがパッと頭に浮かばない
これじゃユーザーも自分は今何を操作しようとしてこの画面を開いてるんだろうって混乱すると思うのだが
そういうこと考えないのかね日本人って

148デフォルトの名無しさん2017/05/13(土) 15:23:35.46ID:uYz1OrPp
レイアウトとかユーザービリティーに無頓着なのは
どちらかと言えば欧米人の方だと思うけどね。

っていうか、欧米はガイドラインやコンセプトの設計者は優秀なんだろうけど、
現場の下っ端がアホなんだろうね。

149デフォルトの名無しさん2017/05/13(土) 16:45:22.48ID:BGrmsOZ0
>>137
winform以外使わないのでギルティ

150デフォルトの名無しさん2017/05/13(土) 17:15:40.88ID:fNJg9X4W
日本人は、ってわけでもないと思うんだけど、現場に近い人間ほど、枝葉末節まで詳細に決めたがる(決めさせたがる)くせに、UX基礎知識が無くてオレオレルールを押し付ける傾向にある気がする。
だから、何でも出来るポテンシャルはあるんだけど、やり方が全く理解できずに、結局何にも使えないガラクタが多い感がある。
使用者に勤勉を求めるUIは悪だよな。

151デフォルトの名無しさん2017/05/13(土) 17:25:13.23ID:BGrmsOZ0
デザインはわからんなぁ
一点透視図で矛盾なく並べたところで「だっせぇ」って言われたら終わりだしね

152デフォルトの名無しさん2017/05/13(土) 18:28:53.63ID:0mphNaBc
デザインはともかく使い勝手が悪い
無駄な入力項目多すぎ

153デフォルトの名無しさん2017/05/13(土) 18:49:49.73ID:fNJg9X4W
「見栄え」って意味のデザインは、ぶっちゃけどうでもいいと思ってる。
それは主観評価だからねー。
愛着には関係するけど、使い易さへの影響度はほとんど無いと思う事ね。

入力項目多すぎとか、あるあるだよね。

154デフォルトの名無しさん2017/05/13(土) 19:04:41.24ID:pWdVX1kE
>>150
あるあるw

155デフォルトの名無しさん2017/05/13(土) 19:24:03.68ID:0mphNaBc
未だにウィンドウサイズ固定のウェブサイトを発注する顧客

156デフォルトの名無しさん2017/05/13(土) 22:32:34.54ID:03xZTs2a
>>153
V2Cか

157デフォルトの名無しさん2017/05/14(日) 10:47:33.08ID:0uI+mSYs
ゲームやドロー系除いてタブ移動やフォーカス管理がちゃんと考慮されてればデザインなんて気にしないよ
今はOS自体がそういった基本UI変えてくる糞になってるけど

158デフォルトの名無しさん2017/05/14(日) 10:56:41.46ID:R3oKaNsf
モデルオブジェクトを取得して
新しい内部状態を入力して
送信して保存する
こういうUIは使いにくい

モデルオブジェクトを取得して
メソッド引数を入力して
送信してメソッドを呼び出して保存する
こういうUIは使いやすい

159デフォルトの名無しさん2017/05/14(日) 12:45:40.06ID:m/JH8Lz+
エラー原因だれか解りませんか?
http://fast-uploader.com/file/7050289086526/

160デフォルトの名無しさん2017/05/14(日) 12:52:31.91ID:lkoSpA4d
クラスに直接メソッド書くなボケ

161デフォルトの名無しさん2017/05/14(日) 14:44:51.94ID:3fFVFQc0
>>159
想像以上で笑ったわw

162デフォルトの名無しさん2017/05/14(日) 14:53:29.82ID:6c+QVGB4
pythonかな

163デフォルトの名無しさん2017/05/14(日) 14:55:13.18ID:8Y89/URi
> クラスに直接メソッド書くなボケ
えっ、普通そうするやん
って思ったら直接文を書いてたのか w
確かに想像以上だわ

164デフォルトの名無しさん2017/05/14(日) 17:05:55.65ID:m/JH8Lz+
関数名とか日本語ですけどダメですかね?
なでしこ言語から入ったので、まぁいっかな、とか思ってます。

165デフォルトの名無しさん2017/05/14(日) 17:36:53.86ID:91rbLpE3
>>164
もう消えてるじゃねーか。まあ相当だめなんだろ、リーダブルコードでも読め

166デフォルトの名無しさん2017/05/14(日) 18:18:55.08ID:GJiVsoER
レビュアーの評判を見るに関数名が日本語とかいう問題ではなさそうだ

167デフォルトの名無しさん2017/05/14(日) 18:21:04.68ID:VOaapSFu
変数名だろうがメソッド名だろうが日本語にしても問題ないからな
もしIDEにエラー表示出ているのなら、ここで聞くのは荒らしレベル

168デフォルトの名無しさん2017/05/14(日) 18:37:02.94ID:3p+3tmMb
>>167
>>1
初心者がIDEのエラーメッセージを読めると思うか?

169デフォルトの名無しさん2017/05/14(日) 18:37:42.17ID:gsPHEnab
>>168
今時ググるぐらい中学生でもできるだろ

170デフォルトの名無しさん2017/05/14(日) 18:41:14.47ID:VOaapSFu
>>168
日本語読めないのなら初心者未満だな
お前はいちいち誰かに解説してもらったのか

171デフォルトの名無しさん2017/05/14(日) 18:45:25.68ID:3p+3tmMb
テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい

C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/

ググればいいというのは確かだが聞いたら荒らしとかないわ

172デフォルトの名無しさん2017/05/14(日) 19:01:05.15ID:Niyp1tN0
初心者を見つけたら急に強気になるやつ

173デフォルトの名無しさん2017/05/14(日) 19:04:12.94ID:m1coD/cI
個人レベルなら変数名、メソッド名に日本語使うのはおk
訳の分からない英語にするよりはいいんじゃないか?

ダメな例
void Convert_Data()

void Method_01(int i)

174デフォルトの名無しさん2017/05/14(日) 21:04:12.46ID:3fFVFQc0
うちのも変数メソッドは日本語にしたくなって来た
辞書引いたりググりながらやったりして調べてるけど後で見返すと読めないのがあったりして困るときあるし

175デフォルトの名無しさん2017/05/14(日) 21:30:38.16ID:8Y89/URi
VBA で将来自分が保守しないコードは日本語識別子にしてる
あとデータベースの表名とか列名も日本語だな
それ以外は習慣でまだ英字だな

176デフォルトの名無しさん2017/05/14(日) 23:48:21.63ID:nhCIier5
日本語は複数形がないのがな

177デフォルトの名無しさん2017/05/15(月) 00:06:55.65ID:rEp2NUpi
>>176
ああ、それはたまに思うね

178デフォルトの名無しさん2017/05/15(月) 00:13:11.99ID:WWr1mKyF
複数とか諸とか「たち」とかつければOK
まあ日本語なんてインテリセンス殺しの名前は俺は絶対使わないけどw

179デフォルトの名無しさん2017/05/15(月) 00:44:55.37ID:Fre6jJ42
質問です
ApplicationSettingsBase(を継承したクラス)において
applicationScopedSetting 属性をつけたプロパティのデータが保存されません。
(userScopedSetting のものは保存されます。)

applicationScopedSetting属性のものはどうやったら保存されるのでしょうか。
また、どのような使い道があるのでしょうか。

おねがいします

180デフォルトの名無しさん2017/05/15(月) 01:46:58.70ID:H6WdDjEY
設定プロバイダを自作しないと保存できないんだったか

使い道?アプリケーションで共有する読み取り専用の値を書くんだよ
DB接続文字列とか

181デフォルトの名無しさん2017/05/15(月) 15:15:02.32ID:DW83hE61
お前らthisつける派?

182デフォルトの名無しさん2017/05/15(月) 15:45:00.88ID:uzaXOcwn
>>181
初心者の俺もそれ知りたい。
偉そうにしてる皆さん達による個々の信仰からのバトルを期待。

183デフォルトの名無しさん2017/05/15(月) 15:54:57.49ID:APQEqBwf
あえてthisを付けるのが正当化されるのは、引数やローカル変数の値を同じ名前
(またはキャメル形式かパスカル形式かだけが違う)のプロパティーやフィールドに
代入する時ぐらいかね。

184デフォルトの名無しさん2017/05/15(月) 16:29:55.58ID:zwx/TTMf
this や self だけじゃなく呼び出し側オブジェクトも
his とか her で参照できていたらパラダイム変わってたよね

185デフォルトの名無しさん2017/05/15(月) 16:55:55.59ID:a/4QJWcH
つける方が好きではあるんだけど、VSだかReSharperだかが消せって言ってくるのでそっちに合わさせたかなぁ

186デフォルトの名無しさん2017/05/15(月) 17:45:39.33ID:S+zSCdGp
メンバー変数を表す接頭辞付ける位なら、thisを付けるな。

187デフォルトの名無しさん2017/05/15(月) 18:25:08.24ID:cef61/4v
C#で何つくれば一人前なん?

188デフォルトの名無しさん2017/05/15(月) 18:27:39.72ID:oiOdc9uz
>>187
d#

189デフォルトの名無しさん2017/05/15(月) 19:14:36.37ID:7MwFbRFx
普段this付ないや規則があれば付けるけど

190デフォルトの名無しさん2017/05/15(月) 19:34:09.15ID:ufmd9LL8
結構なんでもthisつけてる
VSには消せっていわれるけど

191デフォルトの名無しさん2017/05/15(月) 19:42:05.75ID:1kHxYJuC
全部のメソッド呼び出しにthis付けているソース見たことあるわ
baseが見辛かったことだけ覚えている

192デフォルトの名無しさん2017/05/15(月) 19:57:23.39ID:oD/+uina
>>183 に一票

193デフォルトの名無しさん2017/05/15(月) 20:25:23.57ID:i6MkOOpj
>>190
に一票

194デフォルトの名無しさん2017/05/15(月) 20:29:21.58ID:DeqHpRpX
VSの初期設定がthisを消しているのでそれに倣ってるわ

195デフォルトの名無しさん2017/05/15(月) 20:31:14.94ID:LCesVlrN
>>194
初期設定でも場合によるだろ

196デフォルトの名無しさん2017/05/15(月) 20:58:22.16ID:MBLyoBiO
最近はインテリセンスも賢くなったからthisは消してる
昔はthis打った方が補完が安定した

197デフォルトの名無しさん2017/05/15(月) 20:59:47.42ID:cef61/4v
入門書読んでるけど、キーワードが80個しか無いってホントなん?
コンテキスト キーワードのみって事なん?

198デフォルトの名無しさん2017/05/15(月) 21:02:57.01ID:wlL0huyV

199デフォルトの名無しさん2017/05/15(月) 21:18:38.92ID:QfNwrH5V
c#について質問です。
生成したファイルを実行時に呼び出したいんですが、
絶対パスで指定している場合、環境が代わってしまうと
パス変わってしまうので読み出せなくなってしまいます。
どの環境でも正しく読み出せるように
絶対パスではなく実行ファイルのディレクトリに
ビルド時に生成するものを作りたいんですが
どうすればよろしいでしょうか?

なんとなくリソースなどにファイルを追加設定すればいいのかと思ったのですが
実行してもどこにも生成されませんでした
VisualStudioの扱いに慣れてなくて申し訳ございませんが
そのあたりご存じの方いたら教えてください。

200デフォルトの名無しさん2017/05/15(月) 21:27:26.62ID:cef61/4v
>>198
今見てるサイトで笑った

201デフォルトの名無しさん2017/05/15(月) 21:38:24.07ID:fLE+TSDI
>>199
色々やるなら Post Build のところにシェルスクリプト書いておく
単にファイルをコピーするならソリューションに追加して、
プロパティでコピーするよう設定する。

↓これのスコア49のとスコア12の回答を参照
http://stackoverflow.com/questions/747941/copying-files-into-the-application-folder-at-compile-time

202デフォルトの名無しさん2017/05/15(月) 23:59:09.51ID:MBLyoBiO
msbuildはタスク追加めんどくさいよね
Coreになった時にcsproj引き継がないでgradleライクなスクリプトに変えればよかったのに

203デフォルトの名無しさん2017/05/16(火) 00:50:21.88ID:VcPDtcgU
xmlはすべて追い出せ!

204デフォルトの名無しさん2017/05/16(火) 01:09:46.21ID:l59jFeCL
JSONよりはわかりやすいだろ

205デフォルトの名無しさん2017/05/16(火) 10:27:28.95ID:JvSvSRd1
Formアプリケーションを作成しているのですが
複数のクラスで発生したそれぞれのエラーをエラーが発生した時に
メッセージボックスに表示してかつログに書き込みたいですのですが
各クラスにはどういう実装をするのがいいのでしょうか

206デフォルトの名無しさん2017/05/16(火) 10:49:45.75ID:z70mDz+n
C#
ボタン配置しても、ダブルクリックでコードが出ない
http://fast-uploader.com/file/7050419469159/

本当に困っているので、教えて頂けると助かります

207デフォルトの名無しさん2017/05/16(火) 11:27:54.26ID:z70mDz+n
pyhonファイルも使えると聞いたのですが、やり方はどうすれば良いのでしょうか?
調べてもmacやubuntuしかでて来ませんでした。
OSはlinux mintです

208デフォルトの名無しさん2017/05/16(火) 11:45:34.03ID:z70mDz+n
using System;
using System.Windows.Forms;

public Sample(a,b)
{
Console.Write(a);
MessageBox.Show(b);
}

Sanmple呼び出し
↑↑↑
を最後に埋め込み

209デフォルトの名無しさん2017/05/16(火) 13:52:34.17ID:z70mDz+n
何とかなりませんかね?

210デフォルトの名無しさん2017/05/16(火) 15:06:12.06ID:2YPoPkpm
先生、sqlbulkcopyでdatatableをDB(sqlserver)に入れたいのですが、datatable内の1カラムにgetdate()を設定することは可能でしょうか?

211デフォルトの名無しさん2017/05/16(火) 15:09:53.48ID:z70mDz+n
はい、可能です

212デフォルトの名無しさん2017/05/16(火) 15:13:05.65ID:2YPoPkpm
>>211
マジですか!調べてみても分からなかったので出来れば設定方法をご教授願います

213デフォルトの名無しさん2017/05/16(火) 15:29:06.61ID:gO5Fs5vN
>>211
お前いろんなスレで死ねって言われてるけどまだ死んでないの
雪風がどうたら

214デフォルトの名無しさん2017/05/16(火) 16:28:20.08ID:xTLK6q+8
>>205
nlogのようなロギングライブラリ使うのが一般的じゃないかな
概要や使い方はぐぐってね

215デフォルトの名無しさん2017/05/16(火) 18:47:27.26ID:/hvrKFRI
>>210
sqlserverならコピー先のテーブルの既定値にgetdate()設定しておけばいいんじゃないの
少なくともDataTableのExpressionじゃ目当ての処理はできないと思う

216雪風2017/05/16(火) 19:14:17.44ID:z70mDz+n
死ねなんて、言われた事ないな

217デフォルトの名無しさん2017/05/16(火) 19:45:42.17ID:JgOfy+oS
>>205
エラーとはなんですか?
まずエラーとは何か定義しなければ話は進みませんよ

218デフォルトの名無しさん2017/05/16(火) 21:13:16.85ID:0XQXtOGz
例外と思っていいんじゃね多分

219デフォルトの名無しさん2017/05/16(火) 21:36:37.56ID:fxDdBjd8
>>205です
>>208>>217>>218
ありがとうございます

イメージとしては、各クラスで起こった例外をcatchしたときコールバック出来るデリゲートを準備して、それぞれのクラスのコンストラクタにformで定義したメソッドを渡してやるといった感じなのですが、一般的にどういったやり方をするもんなのかと思いまして
MessageBox.Show()を実行させるので、エラー発生時の処理を全てform内に記述するのが普通なんですかね?

220デフォルトの名無しさん2017/05/16(火) 21:46:34.93ID:fjoeC8EN
>>219
クラスを同時実行しないのならForm内にエラー処理メソッド作って
・エラーが起きたときに各クラスからそのメソッドを呼び出す
・クラス終了時にエラーを示す返値を出してFormで判断する
普通とか存在しないからその他好きに作ればいいよ
クラス同時実行するのならちょっと面倒になるけど
MessageBox.Show()を使うよりFormにRichTextBoxかLabelで表示したほうが分かりやすいと思うけど

221デフォルトの名無しさん2017/05/16(火) 21:55:35.21ID:64KrDfHK
>>219
例外はなるべく呼び出し階層の上の方でキャッチするのが基本
フォームアプリならそれはすなわちイベントハンドラになる
ヘタに奥の方でキャッチして握り潰すよりずっといい
その代わり、どこで例外が発生して処理か打ち切られてもリソースのリークなどの問題が起きないように
常に例外安全なコーディングをすること

222デフォルトの名無しさん2017/05/16(火) 21:55:53.25ID:kR+Ii8XK
エラーを記録する事に情熱を燃やすよりもエラーを出さないコードを書く事に集中する方がいいと思う。

223デフォルトの名無しさん2017/05/16(火) 22:10:05.09ID:fxabLeuL
エラーを出さないようにするにはエラーを記録することが役に立つから情熱をかけてもいい

224デフォルトの名無しさん2017/05/16(火) 22:17:01.95ID:VGECTk9b
それを例外の握り潰しという

225デフォルトの名無しさん2017/05/16(火) 22:22:33.82ID:Ag35s8j3
コンパイラをframeworkで標準装備って、ウイルス的に良くないと思うのだけど?

226デフォルトの名無しさん2017/05/16(火) 22:31:35.05ID:AGzM1pll
>>219
よく分からんけど、個々の例外ハンドラーでいちいちメッセージの表示とログの処理を書くのが面倒だってことなら
こんなのはどうかね。
もちろん、まったく一般的でも何でもないはずだけどw


(1) すでに適切に処理された例外を表すHandledExceptionを定義

(2) 個々の例外ハンドラーではキャッチした例外をHandledExceptionのInnerExceptionに
入れてHandledExceptionをスロー

(3) 集約例外ハンドラーを使ってHandledExceptionのInnerExceptionを使って
メッセージの表示とログを行う

集約例外ハンドラーって俺はあんまり使ったことないけどこういうやつ
http://www.atmarkit.co.jp/ait/articles/0507/01/news134.html

227デフォルトの名無しさん2017/05/16(火) 22:35:00.50ID:AGzM1pll
だだこんな作り方されると後で他で再利用しずらいねw

228デフォルトの名無しさん2017/05/16(火) 22:37:25.86ID:zhIbn0v9
エラー処理は置いといて、
自分はログや経過表示にはログクラスを作って各クラスにインスタンスを渡してるな

229デフォルトの名無しさん2017/05/16(火) 22:41:10.27ID:VGECTk9b
例外はキャッチされようがされまいがメソッドを抜けた時点で必ず後片付けが完了しているのが正しい
極端な話、全部UnhandledExceptionで処理しても問題ないはず

230デフォルトの名無しさん2017/05/16(火) 22:54:27.55ID:4vSkrFsf
下のコードで、var fuga からインデックス等で最初の要素を指定して
データを取得したいのですが、どのように書けば行けるでしょうか?

class Hoge
{
public int hoge { get; set; }
}

static void Main(string[] args)
{
List<Hoge> hogehoge = new List<Hoge>();
hogehoge.Add(new Hoge { hoge = 1 });
var fuga = hogehoge.Where(e => e.hoge==1);
int hogege = fuga[0].hoge; //インデックス等で最初の要素だけ取得したい
}

231デフォルトの名無しさん2017/05/16(火) 22:56:54.77ID:0Zcpca0B
fuga.ToArray()[0] or fuga.ToList()[0]

232デフォルトの名無しさん2017/05/16(火) 23:02:22.98ID:iUpJkWmO
>>205です
皆さんありがとうございます
すごく参考になるレス頂けてとても助かりました
指摘頂いたことを参考に頑張ってみます
またわからないことあったら質問させてください

233デフォルトの名無しさん2017/05/16(火) 23:12:13.60ID:5HaY8++G
>>230
インデックスで任意の要素を、ではなく、最初の要素固定なら
fuga.First()
でもいける

234デフォルトの名無しさん2017/05/16(火) 23:15:05.18ID:5HaY8++G
Skip()使えば途中の要素もいけるか

2352302017/05/17(水) 00:17:28.91ID:F4n193dh
fuga.First()がまさに求めていたものでした
fuga.ToList()というやり方も、非常に参考になります。

ありがとうございました。

236デフォルトの名無しさん2017/05/17(水) 01:29:46.60ID:4KwX7I2m
>>235
fuga.ToList()の方は一旦条件に該当するもの全部の配列を作るから、First()を使うのと比べて無駄がある。
さらに言うなら、この場合はWhere()も必要無くて、hogehoge.First( e => e.hoge ==1 )で良い。

237デフォルトの名無しさん2017/05/17(水) 08:36:02.32ID:oIZq9+Td
>>215
ありがとうございます。
私もその結論に至りました。

238デフォルトの名無しさん2017/05/18(木) 04:30:00.50ID:plBfXEwH
.netとapi絡みですがいいですか?
GetPrivateProfileStringですがどうやっても30000文字くらいまでしか読めません…
2000以降のOSだと読み込みの文字数制限無いって書いてるのに… なんででしょうか?
ちなみにC++から普通に全然読み込めました。

239デフォルトの名無しさん2017/05/18(木) 04:31:21.77ID:plBfXEwH
宣言はこんなかんじです。
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section,
string key, string def, StringBuilder retString,
int size, string path);

240デフォルトの名無しさん2017/05/18(木) 05:04:07.60ID:QqtQwXyU
実際にはGetPrivateProfileStringAが呼び出されてるとか

241デフォルトの名無しさん2017/05/18(木) 05:13:30.48ID:plBfXEwH
>>240
仮にそうだとして回避する事って出来るんですかね?

242デフォルトの名無しさん2017/05/18(木) 05:20:15.27ID:plBfXEwH
こうやってみたけどダメでした… 無理かな…
[DllImport("Kernel32.dll", CharSet=CharSet.Unicode, EntryPoint="GetPrivateProfileStringW")]

243デフォルトの名無しさん2017/05/18(木) 05:51:43.24ID:3q2usjgF
無理かどうか以前にGetPrivateProfileStringで30000文字読み込むなんていう仕様がおかしい気が・・・

244デフォルトの名無しさん2017/05/18(木) 05:53:36.76ID:plBfXEwH
>>243
マニュアルには2000以降は制限なしって書いてるのに制限かかるのが不可解で…

245デフォルトの名無しさん2017/05/18(木) 06:21:12.42ID:3q2usjgF
どこにそう書いてあるのか知らないけど自分の環境で試してみたら60000文字以上でも読めたよ

246デフォルトの名無しさん2017/05/18(木) 06:22:38.85ID:plBfXEwH
>>245
え〜そのコードおしえてください!

247デフォルトの名無しさん2017/05/18(木) 06:37:59.18ID:3q2usjgF
sizeにバイト数ではなく文字数を渡しているとか?

248デフォルトの名無しさん2017/05/18(木) 06:49:20.83ID:plBfXEwH
>>247
それでした…orz
半日悩んだ結果がこれ…orz

249デフォルトの名無しさん2017/05/18(木) 06:56:20.37ID:plBfXEwH
>>247
いやそういう事でもやっぱないような…
これでいいんですよね??
StringBuilder temp = new StringBuilder(99999999);
GetPrivateProfileString(Section, Key, "", temp, 99999999, path);

250デフォルトの名無しさん2017/05/18(木) 07:15:48.86ID:3q2usjgF
バッファの終端はNULL文字になるからそれだと99999998バイトまでしか読めないみたいよ
MSDNにその辺りのことが書いてある
99999999が仕様なら仕方ないけど、そうでないなら長さはちゃんと決めないとトラブルの元になるよ

251デフォルトの名無しさん2017/05/18(木) 07:26:40.34ID:plBfXEwH
>>250
というかよくわからないのが
WritePrivateProfileString()は最初の一回は30000文字以上でも書き込めるけど
2回目に試しに上書きしてみようとしてもうまくできないんですよね…
""空文字を設定してもダメみたいで…
一旦30000文字以上を書き込むと上書きも出来なくなります。
これReadPrivateProfileString()が読み込めないのと何か関係してるのかな…
意味が分からない…

252デフォルトの名無しさん2017/05/18(木) 07:39:10.95ID:3q2usjgF
フラッシュしても駄目?

253デフォルトの名無しさん2017/05/18(木) 07:39:21.49ID:bq0WS2qT
INIファイルはWin16の頃の遺物だからそんなでかい文字列を扱ってトラブルになるのも仕方ないと思う
ってかMSDN見ても30000文字以上扱えるという記述ないけど

254デフォルトの名無しさん2017/05/18(木) 08:00:42.55ID:plBfXEwH
>>252-253
https://msdn.microsoft.com/ja-jp/library/cc429770.aspx

これと勘違いしてた…
でもこれがいけるならGetPrivateProfileStringもいけないの?

255デフォルトの名無しさん2017/05/18(木) 08:26:32.47ID:plBfXEwH
>>253
今VC++からも読み込んでみたんですがどうやら勘違いでした。
31487文字までしかどうやっても読み込めませんでした。
GetPrivateProfileString()自体にやっぱ制限があるようです。

256デフォルトの名無しさん2017/05/18(木) 08:27:25.66ID:Za5q7uI4
なんでそんな限界に挑戦したいの?
どんな環境でも動くようにしたくないのか?

257デフォルトの名無しさん2017/05/18(木) 08:43:47.28ID:0yP1j9dj
iniファイル使わざるを得ない事情があるんだろうけどそれならAPIより.NETライブラリ探したほうがいいんじゃないの

258デフォルトの名無しさん2017/05/18(木) 08:48:31.58ID:plBfXEwH
>>256
古いアプリのファイルを読み込みたくて
>>257
何かよいソースないかさがしてみます。
最悪自力で読み込もうと思います。

259デフォルトの名無しさん2017/05/18(木) 09:01:56.00ID:bq0WS2qT
>>258
ソースから探さなくてもnugetでiniパーサー見つかるでしょ

260デフォルトの名無しさん2017/05/18(木) 10:22:47.93ID:bBEBMsWX
iniファイルなんて自分で読み書き出来るだろ

261デフォルトの名無しさん2017/05/18(木) 10:29:06.99ID:plBfXEwH
>>259
なるほど。
>>260
そうですよね。

262デフォルトの名無しさん2017/05/18(木) 18:13:55.78ID:kDiQJ8Uz
ビットフィールドないのけ?
あと固定長も

unsafeなんか入れたくないけど結構使うもん?
gchandleとmarshalでsafeにやった方がいいのかunsafe使いまくっても全然問題ないのか
みなさんの方針を教えてください

263デフォルトの名無しさん2017/05/18(木) 18:17:39.04ID:OCXcI4ec
>>262
32ビット固定とかなら好きに使えよ
marshalはよく使うがunsafe使う必要に迫られたことないな

264デフォルトの名無しさん2017/05/18(木) 19:01:17.54ID:nGaj6J50
>>262
BufferでもBitArrayでもBitVector32でも好きに使えや

265デフォルトの名無しさん2017/05/18(木) 19:28:28.05ID:POnkIYdd
クロージャだの非同期タスクだの高レベルなことは各言語記述性高まってるけど、
エンディアン指定してビット長さ指定してビットフィールドとか
そういう低レベルなことを簡単に記述できる方向の進歩って少ないよね…

30年前と同じにシフトしてマスクして足すという

266デフォルトの名無しさん2017/05/18(木) 20:08:12.45ID:Zif2rhHO
>>255
Windows NT 4 の頃に WritePrivateProfileString( ) をガンガン使ってたらたまに戻ってこないことがあったので、マイクロソフトにインシデント使って問い合わせたらすったもんだの末に「仕様です」って言われた w
もうその頃から捨てたがってるのがありありだったわ

267デフォルトの名無しさん2017/05/18(木) 20:26:56.52ID:kDiQJ8Uz
>>263-4
32ビット境界になってればいいけど…
そこまでまだ見てないけど多分なってないんだよなぁ
取り敢えずその辺当たってみるわありがとさん!

268デフォルトの名無しさん2017/05/18(木) 21:23:53.78ID:bBEBMsWX
>>266
ガンガンって一秒当たり1000回くらいコールしたの?

269デフォルトの名無しさん2017/05/18(木) 22:11:18.52ID:anTKPcsr
>>265
高レベル低レベルっていうより需要とか汎用性の問題だと思いますが

270デフォルトの名無しさん2017/05/18(木) 22:40:26.48ID:K0KmS8r5
>>268
最大数十回程度だったと思う
ただ24時間運用の機器だったから再現テストがめちゃ大変だった
最後は自前で読み書きを実装した

271デフォルトの名無しさん2017/05/18(木) 23:10:55.63ID:anTKPcsr
>>270
iniに記録する類の情報なんかアプリ終了時の保存しようよそもそもw
いきなり電源落ちたら困る?
そういうのはハード(UPSとか)で対応しなきゃw


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

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「ふらっと C#,C♯,C#(初心者用) Part128 [無断転載禁止]©2ch.net->画像>4枚 」を見た人も見ています:
ふらっと C#,C♯,C#(初心者用) Part141
ふらっと C#,C♯,C#(初心者用) Part138
ふらっと C#,C♯,C#(初心者用) Part144
ふらっと C#,C♯,C#(初心者用) Part148
ふらっと C#,C♯,C#(初心者用) Part150
ふらっと C#,C♯,C#(初心者用) Part148
ふらっと C#,C♯,C#(初心者用) Part143
ふらっと C#,C♯,C#(初心者用) Part147
ふらっと C#,C♯,C#(初心者用) Part151
ふらっと C#,C♯,C#(初心者用) Part140
ふらっと C#,C♯,C#(初心者用) Part142
ふらっと C#,C♯,C#(初心者用) Part136
ふらっと C#,C♯,C#(初心者用) Part141
ふらっと C#,C♯,C#(初心者用) Part139
ふらっと C#,C♯,C#(初心者用) Part145
ふらっと C#,C♯,C#(初心者用) Part135
ふらっと C#,C♯,C#(初心者用) Part132
ふらっと C#,C♯,C#(初心者用) Part146
ふらっと C#,C♯,C#(初心者用) Part133
ふらっと C#,C♯,C#(初心者用) Part156
ふらっと C#,C♯,C#(初心者用) Part149
ふらっと C#,C♯,C#(初心者用) Part119
ふらっと C#,C♯,C#(初心者用) Part157
ふらっと C#,C♯,C#(初心者用) Part121
ふらっと C#,C♯,C#(初心者用) Part155
ふらっと C#,C♯,C#(初心者用) Part154
ふらっと C#,C♯,C#(初心者用) Part134
ふらっと C#,C♯,C#(初心者用) Part130
ふらっと C#,C♯,C#(初心者用) Part137
ふらっと C#,C♯,C#(初心者用) Part131
ふらっと C#,C♯,C#(初心者用) Part129 [無断転載禁止]
ふらっと C#,C♯,C#(初心者用) Part120 [無断転載禁止]
ふらっとC#,C♯,C#(初心者用) Part88
ふらっとC#,C♯,C#(初心者用) Part92
ふらっと C#,C♯,C#(初心者用) Part160 (874)
ふらっと Q#,Q♯,Q#(初心者用) Part 1 (10)
ふらっと C#,C♯,C#(議論用)
教えて、鯖管理の仕方(初心者用)
くだすれC++/CLI(初心者用)part2
何か楽しい教本・曲集ないの?(初心者用)
ブラックなベンチャーについて語るスレ(初心者用)
登山靴スレ64(初心者OK)
悩み事を聞いてほしい(初心者)
ナンパしてみたい(初心者)
Diablo2 超ドQ!初心者用スレ
立憲民主党(政治初心者用)☆1
おまえら!初心者のために絵講座サイトつくれ!! 3
くだすれFORTRAN(超初心者用)その7
街コン行く人集まれ(初心者向け)Part5
街コン行く人集まれ(初心者向け)Part4
男子ごはん 蒼井優とBBQ!初心者でも簡単!ダッチオーブンを使った料理
街コン行く人集まれ(初心者向け)Part3
ピアノ大人初心者のためのスレッド(クラシック専用)
【急募】月収45万円のお仕事!初心者歓迎!半年分の給与の前借り可能!放射能関係でもエロ関係の仕事でもありません!
山木「石田は初心者なのに何も言わなくてもめちゃくちゃ動く」石田「初心者とは思えない動きだったと梨沙ちゃんにすごく褒めてもらった」
10:02:17 up 3 days, 20:26, 0 users, load average: 15.96, 17.05, 13.88

in 0.60100293159485 sec @0.60100293159485@0b7 on 121600