ふらっとVisual C#,C♯,C#(初心者用) Part109at TECH
ふらっとVisual C#,C♯,C#(初心者用) Part109 - 暇つぶし2ch97:デフォルトの名無しさん
13/11/30 22:06:13.01
>>96
OptionalAttributeがないとクラッシュするじゃん

98:デフォルトの名無しさん
13/11/30 22:07:32.60
>>92
10行もかからねーだろw

99:デフォルトの名無しさん
13/11/30 22:20:52.53
intとDataRow型の宣言をしてforとifをブロックで書くとジャスト10行だけど煽ってコード書かせようってクチ?

100:デフォルトの名無しさん
13/11/30 22:22:17.13
※ここの住人は「まず煽る」ことから始めるのでスルー能力を磨いてから書き込みましょう

101:デフォルトの名無しさん
13/11/30 22:24:28.37
じゃあ俺はElementとElementsの違いに気づかない>>97を煽る

102:デフォルトの名無しさん
13/11/30 22:24:54.52
いや87ででてるじゃん? まだ冗長だけど

103:デフォルトの名無しさん
13/11/30 22:27:09.40
>>96
こういうコードたまに見るけど、もうなんというか
最も酷い

104:デフォルトの名無しさん
13/11/30 22:30:24.43
ユーザーコントロールを継承したクラスAを更に継承したクラスBを
Formに動的に追加してクリックイベントを発生させたいのだけど
クラスBでクリックイベントが発生しません

大部分の機能は同じだけどクリックされたときの挙動を幾つか用意したいので
クラスB1、B2のように作っていこうと思っているんだけどどうすればいいですか?

105:デフォルトの名無しさん
13/11/30 22:30:37.05
>>87はわざとお話にならないように書いたコードだぞ

106:デフォルトの名無しさん
13/11/30 22:32:34.62
>>105
それ以外の書き方を知らない人間はそうやって道化を演じるしかないからな

107:デフォルトの名無しさん
13/11/30 22:42:05.55
>>104
OnClick呼んでないとかイベントハンドラー登録してないとかそんな感じだろ

108:デフォルトの名無しさん
13/12/01 00:42:00.21
>>84
DataRow[] rows = datatable.Select("xxx = ...");

じゃだめなの?
こういう意味じゃ無い?

109:デフォルトの名無しさん
13/12/01 00:42:19.02
もしかして子コントロールのイベントはユーザーコントロールを継承したクラスAでしか取得できない?
クラスBで取得するにはコードでイベントハンドラを登録させるしかないのかな?

110:デフォルトの名無しさん
13/12/01 01:33:02.14
なぜかコンストラクタが削除されてて
InitializeComponentメソッドが読まれてなかっただけだった
慣れない継承したからてっきり継承のせいだと思ってた

111:デフォルトの名無しさん
13/12/01 01:55:04.14
あ、ちがった、やっぱり継承先では継承元の子コントロールのイベントは取得できないみたい

112:デフォルトの名無しさん
13/12/01 02:14:29.08
コントロールAをこうすればいいでしょ
protected virtual void button1_Click(object sender, EventArgs e)
{
}

113:デフォルトの名無しさん
13/12/01 02:56:37.81
それでいけました
あと、コントロールのmodifiersをProtectedにしてもできた
でも他のクラスから直接コントロールを操作できるようにするは作法としてよろしくないのかな
やっぱり>>112のように触ってもいいところだけ仮想メソッドなりで公開するのがいいのかな

114:デフォルトの名無しさん
13/12/01 06:03:19.27
private void button1_Click(object sender, EventArgs e)
{
 this.OnButton1Click();
}

protected virtual void OnButton1Click()
{
}

こんな感じ

115:デフォルトの名無しさん
13/12/01 09:39:09.03
>>99
どうやったら10行も必要なの?
int i = datatable.Rows.IndexOf(datatable.Select(".............")[0]);

116:デフォルトの名無しさん
13/12/01 09:48:33.34
公式に10行で云々ってページがあるからさw

117:デフォルトの名無しさん
13/12/01 09:55:46.23
>>115
それ全件検索→配列作成→順次検索だからforで回すのの平均1.5倍かかるぞ
構文解析のコストとか無視しても

118:デフォルトの名無しさん
13/12/01 09:58:23.31
ついでに言うと短くしたいのならパフォーマンスがいいのは.Select().FirstOrDefault()とか

119:デフォルトの名無しさん
13/12/01 10:03:28.82
3倍だったわ

120:デフォルトの名無しさん
13/12/01 13:00:31.86
C#er が速度なんて考えてるとはおもわなんだ!!!

121:デフォルトの名無しさん
13/12/01 13:23:39.21
その程度の速度差が気になるならデータセットは使えないでしょうが

122:デフォルトの名無しさん
13/12/01 13:28:58.22
速度無視しても>>115はありえない
全レコード該当した場合n要素の配列が2個必要だぞ

123:デフォルトの名無しさん
13/12/01 13:29:00.90
前提条件が提示されていない中で
各々のポリシーに従って不毛な言いあいを続けるようなら
また両方にまぎれて煽りますよ
12時間くらい

124:デフォルトの名無しさん
13/12/01 13:29:32.23
普通にforで回すのが最速だと思う

125:デフォルトの名無しさん
13/12/01 13:31:40.19
今回はポリシー云々じゃなく万人が認めるべきアホなコードだから不毛じゃない

126:デフォルトの名無しさん
13/12/01 13:44:14.64
ほう。
こんな表現もあったか。
データ件数が100件程度以内なら
int i = datatable.Rows.IndexOf(datatable.Select(".............")[0]);
でいいなぁ。上にコメントでもつけてくれれば。

127:デフォルトの名無しさん
13/12/01 13:50:52.86
自演

128:デフォルトの名無しさん
13/12/01 13:53:20.67
filterExpressionが原因のバグが頻発しそう

129:デフォルトの名無しさん
13/12/01 14:02:42.61
頻繁するかは分からないけどリスクはあるよね

130:デフォルトの名無しさん
13/12/01 14:39:36.83
VBのほうが利用者多いんでしょ。
C#とVBに差がないんならC#を何で選ぶの?
C一族なの?

131:デフォルトの名無しさん
13/12/01 14:47:44.76
VB6から抜け出せない人用だし、選ぶ積極的理由が無いよ

132:デフォルトの名無しさん
13/12/01 14:54:36.05
利用者が多いってのは何の統計なんだね

133:デフォルトの名無しさん
13/12/01 14:58:13.95
当方C一族でして

134:デフォルトの名無しさん
13/12/01 15:04:00.18
リーナス・トーバルズ曰く

*YOU* are full of bullshit.
C++ is a horrible language. It's made more horrible by the fact that a lot
of substandard programmers use it, to the point where it's much much
easier to generate total and utter crap with it. Quite frankly, even if
the choice of C were to do *nothing* but keep the C++ programmers out,
that in itself would be a huge reason to use C.

だいたいこれと同じ理由

135:デフォルトの名無しさん
13/12/01 16:40:56.88
VBコードなんて見づらくて最初からやる気しなかったな

136:デフォルトの名無しさん
13/12/01 17:52:29.22
スクリプトで遊び始めた頃にvbscriptを見るとなぜか吐き気を催したので
javascriptを選択してしまった流れで

137:デフォルトの名無しさん
13/12/01 18:14:32.16
>>130
低レベルなコードも書きたいならC#
COMと相互運用したいならVB.NET
常識だろ

138:デフォルトの名無しさん
13/12/01 18:14:34.87
C一族の者に御座る

139:デフォルトの名無しさん
13/12/01 18:16:20.04
Dim Unko As String
string unko;
どっちが見やすいかな?

140:デフォルトの名無しさん
13/12/01 19:56:01.66
vbはこれができるんだぜ
Dim number = 1, text = "hoge"

141:デフォルトの名無しさん
13/12/01 19:59:18.75
だからどうしたというレベル

142:デフォルトの名無しさん
13/12/01 20:02:11.62
ムムム
If 5 == 5 Then
Console.WriteLine();
End If

if (5 == 5)
Console.WriteLine();

どっちが見やすいんだよ?

143:デフォルトの名無しさん
13/12/01 20:10:15.18
C#スレで聞いてどうする

144:デフォルトの名無しさん
13/12/01 20:33:46.18
If 5 == 5 Then Console.WriteLine();

145:デフォルトの名無しさん
13/12/01 20:34:19.66
まだ間違ってるぞ
If 5 = 5 Then Console.WriteLine()

146:デフォルトの名無しさん
13/12/01 20:44:30.76
    l'''-、    .t―--、   .!¬、          > 、              r‐ ,          >-、     >、___
 .lヽ,,| il,,..、   ,ゝ--′   | | 、        / ./ t-、            ,,,  | レ''')      ! . ゝ、,. t,   >   `!
  ゙ヽ、 __,ノ   , -''',゙ ̄''、 <゙゙´ レ'',゙ ̄\ .l゙‐''"゛.,i、`'i lヽ   _,_._,,、 ヘ ̄ .,,..-',゙ _ ト‐'" .,i  l, l.ヽ / .厂 ̄゛
 / !/ ,l_r-,.´>、 ヽ,,./   | .l `フ  / ̄│ .l `-7 ./ .l .! .l l l'‐'゙/'''''''、.ヽ  / /ィニ二_,,,ノ ゝ7 ./ .l ! ゙l l .! !_.. - 、.
 ヽ、   ./゙l .l      l  ! /  !    } ! / ./ l /!││゙''"    .} | l゙ / ,,.'"゛    / ./  l l | |.l  ン"゙゙''、 ヽ
  .! l ̄ .,ノ |    ノ  ノ∠   !   ノ ノ / .iト,,ノ /  .゙''゙      / . l ,/ / ./.!  ._....、./ .,l ト,,/ /  .゙''゙ L./    /  }
  .ヽ `゙゛ . /  ._,,/_,/   .! l ∠‐"  |__/ ヽ ./       ._.. ‐,゙..-゙ ! / .l、.´   ,!| ./ l ./      . __,, / ,.ノ
    .`゙゙゙゙゙゛   `⌒       `゛         `´       .  ̄´   `"   `"'''''"゛    `゛      `゙'''''゙゙´

147:デフォルトの名無しさん
13/12/02 01:46:32.63
VBって未だにサブルーチン呼び出しは括弧付けたら駄目っつー変態バカ仕様でやってんの?

148:デフォルトの名無しさん
13/12/02 02:10:49.67
ListViewでListViewItem一個一個に
ユーザーデータを追加させたいのですが
(MFCのCListCtrlのSetItemData/GetItemDataみたいなやつ)
どのようにすればいいでしょうか?

149:デフォルトの名無しさん
13/12/02 06:47:01.04
Tag

150:デフォルトの名無しさん
13/12/02 08:13:07.79
ListViewを継承してお好きなプロパティでもなんでも持たす

151:デフォルトの名無しさん
13/12/02 08:13:48.83
×ListViewを継承してお好きなプロパティでもなんでも持たす
○ListViewItemを継承してお好きなプロパティでもなんでも持たす

152:デフォルトの名無しさん
13/12/02 08:49:50.39
コントロールは多くのプロパティをオーバライドできないのだけど
どういう設計思想なのこれは?

153:デフォルトの名無しさん
13/12/02 10:16:32.35
いいから黙って書け

154:デフォルトの名無しさん
13/12/02 12:19:57.30
>>152
.NetのComponentモデルの世界では
基本的にメソッド呼び出しやプロパティの読み書きは実行時に解決して呼び出す決まりで
ライブラリもそうなってるしユーザコードもそれに従わなくてはならない(まあ従わなくても動く事が多いが)
だからoverridesはなくshadowsを使えば良い

155:デフォルトの名無しさん
13/12/02 12:45:21.71
c#は最終的にはlinuxでも標準になるん?

156:デフォルトの名無しさん
13/12/02 13:53:00.15
C#で小数点を扱う場合、doubleの方が良いのでしょうか?
単純な計算の繰り返しだけならfloatの方が若干早くなりますが、
doubleとfloatが混ざってキャストしたりすると遅くなるので、
計算式にもよると思うのですが、doubleで統一しておいた方が無難でしょうか?
よろしくお願いします。

157:デフォルトの名無しさん
13/12/02 13:56:04.19
floatの利点は格納スペースが少なくてすむくらいかな

158:デフォルトの名無しさん
13/12/02 13:58:40.96
floatとdoubleの比較ならまあdouble一択でいいだろ
decimalとの比較は用途次第

159:デフォルトの名無しさん
13/12/02 14:53:24.25
>>157-158
ありがとうございます。
fを付け忘れたり、ただ割っただけですとdoubleにキャストしてしまいますので、
そこまで精度が必要で無くてもdoubleにて計算するようにします。

160:デフォルトの名無しさん
13/12/02 15:21:19.54
>>147
call 書けよ

161:デフォルトの名無しさん
13/12/02 15:55:58.31
>>149
ありがとう

162:デフォルトの名無しさん
13/12/02 20:42:14.83
型 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' の初回例外が Microsoft.CSharp.dll で発生しました

これが大量に出るのを抑制する方法はありますか?

163:デフォルトの名無しさん
13/12/02 21:14:30.01
vc2010を使っています

現在作成しているソリューションの一部を後々使いまわせるようにdll化したいと思っています
調べると別ソリューションを作成してクラスライブラリとして作成、コンパイルすればdllすることができるとあったので、別ソリューションで作成し、参照することも出来ました
ただ、今後の開発を考えると1つのウィンドウで作業していきたいのですが、異なるソリューションを同じウインドウで開発したり、
dllを参照している側でコンパイルするとdll側もコンパイルされるような設定はできますでしょうか?

別ウィンドウで作業し、dll側をコンパイル後、参照側をコンパイルすることしかできないのでしょうか

164:デフォルトの名無しさん
13/12/02 21:23:35.68
>>163
ソリューションからプロジェクト追加

165:デフォルトの名無しさん
13/12/02 21:25:04.58
依存関係の設定を忘れないように

166:デフォルトの名無しさん
13/12/03 14:35:06.49
ありがとうございます

「既存のプロジェクト追加」でdll側のcsを追加し、「参照の追加」でdll側のソリューションの作成したdllを指定しています
しかし「既存のプロジェクト追加」で追加したcsを編集してもdll側のcsには反映されてないようで、ビルドした際にもdll側のビルドはされていないようです
依存関係というのが大切そうなので、調べてみたところソリューションのプロパティから「プロジェクト依存関係」まで辿り着いたのですが、
dll側のプロジェクトが表示されておらず、設定ができませんでした

なにか設定が足りないのでしょうか

167:デフォルトの名無しさん
13/12/03 14:39:22.88
使いまわすだけならdllにしなくてもいいって疑問は無し?

168:デフォルトの名無しさん
13/12/03 14:50:36.50
とりあえず参照の追加で指定するのはdllプロジェクトかな、普通は

169:デフォルトの名無しさん
13/12/03 15:04:10.35
説明不足ですみません
もちろんdllを指定しています

>>167
他のアプリで使ったりと色々としたいことがあるので

170:デフォルトの名無しさん
13/12/03 15:17:00.61
追加するのはdllじゃなくてプロジェクトだぞ

171:デフォルトの名無しさん
13/12/03 15:18:39.21
もしかしてつかってるVSってEXPRESSか?
複数プロジェクトいけるEXPRESSっていつからだっけ

172:デフォルトの名無しさん
13/12/03 16:12:00.06
ありがとうございます
EXPRESSを使っています

いろいろ試してみて
メニューバーのプロジェクトの「既存のプロジェクト追加」ではなくソリューションエクスプローバーでソリューションを選んで「追加」を選択すると
「プロジェクト依存関係」が設定できるようになり、使用側のビルトでdll側もビルドされるようになりました
この2つが別物だったんですね・・・

もう1つ教えてください
上記の過程でdll側を一度ソリューションから作りなおしたのですが、今度はdllを参照に指定してもusingの宣言で「usingもしくはアセンブラがないよ」と言われるようになってしまいました
オブジェクトブラウザで見るとdllの名前空間が表示されておらず、ソリューションエクスプローバーのコンテナにはdllが表示されているという歪な状態になっています
試しに別名のtestというソリューション名、class1と言うクラス名でdllを作ってみると無事参照されてしまいました
dllのnamespace、class名が怪しいのかと思って確認しましたが、統一されてました
「オブジェクトブラウザで見るとdllの名前空間が表示されておらず、ソリューションエクスプローバーのコンテナにはdllが表示されているという歪な状態」についてわかることはありませんか?

173:デフォルトの名無しさん
13/12/03 16:35:07.83
すいません、自己解決しました
classにpublic付けてませんでした・・・
アホすぎわらえない

174:デフォルトの名無しさん
13/12/03 16:58:57.81
>>173
m9

175:デフォルトの名無しさん
13/12/03 17:03:21.71
>>173
どんまい

176:デフォルトの名無しさん
13/12/03 18:16:38.97
まずソリューションとプロジェクトとDLLの区別付ける所から初めて下さい

177:デフォルトの名無しさん
13/12/03 19:48:28.78
>>173
安心しろ。俺もはまったことがあるw

178:デフォルトの名無しさん
13/12/03 20:14:05.93
だから全部publicにしろって言ったんだ。

179:デフォルトの名無しさん
13/12/03 20:18:32.34
全部グローバル

180:デフォルトの名無しさん
13/12/03 20:26:05.45
全部スタティック

181:デフォルトの名無しさん
13/12/03 20:38:07.94
全部下請け

182:デフォルトの名無しさん
13/12/03 21:37:39.54
デバッグなしで実行とデバッグありで実行って
挙動としては何が違うんですか?

183:デフォルトの名無しさん
13/12/03 21:47:20.68
デバッグするかしないか

184:デフォルトの名無しさん
13/12/03 21:49:14.97
デバッガの子になるかならないか

185:デフォルトの名無しさん
13/12/03 23:33:53.23
アクセス修飾子の最適化問題はNP困難な割にやったところで大したメリットが無いから
解こうとしないほうが良い

186:デフォルトの名無しさん
13/12/03 23:44:24.00
アクセシビリティのエラーとか忘れること多いわ

187:デフォルトの名無しさん
13/12/04 00:03:07.88
Windows フォーム アプリケーション で、チェックボックスを使って
5つの選択肢の中から1つしか選択できないようにする方法ってありますか??
例えば、二つ目を選択しようとしたら、前に選択したチェックボックスのチェックは
ちゃんと消える、みたいな…
要するにアンケートみたいなものを作りたいんです

なんかわかりにくくてすみません

188:デフォルトの名無しさん
13/12/04 00:14:34.11
>>187
そういうケースではCheckBoxじゃなくてRadioButtonを使うのがWindowsのルールですよ

189:デフォルトの名無しさん
13/12/04 00:20:20.46
>>187
釣りだろ
ラジオボタン以外ありえんだろ

190:デフォルトの名無しさん
13/12/04 00:22:49.05
なんでも釣り釣りって

191:デフォルトの名無しさん
13/12/04 00:25:47.81
ラジオボタンはHTMLでもWindowsでもそのほかでも当たり前のように存在してるけど
あれをラジオのボタンと言われてもピンと来ないな

192:デフォルトの名無しさん
13/12/04 00:26:05.27
ラジオボタンでしたか すみません
ラジオボタンにした場合、どうしたらよいのでしょうか??

193:デフォルトの名無しさん
13/12/04 00:28:58.22
同じフォーム、同じパネル、同じグループボックスに放り込めば勝手に排他される

194:デフォルトの名無しさん
13/12/04 00:33:01.13
>>193
ありがとうございます!!調べてみたらいけそうです!!

195:デフォルトの名無しさん
13/12/04 00:33:50.24
そういやCheckBoxの中間のやつってどうするの
trueでもfalseでもないやつ
CheckBox.Checkedってnull非許容型だよね?

196:デフォルトの名無しさん
13/12/04 00:38:02.50
CheckState.Indeterminateだろ

197:デフォルトの名無しさん
13/12/04 00:39:25.09
そんなのあったんか
サンクス

198:デフォルトの名無しさん
13/12/04 08:40:56.70
staticクラス使えるのに未だにシングルトン使うやつがうざい

199:デフォルトの名無しさん
13/12/04 11:56:18.46
SplitContainerとかTableLayoutPanel使って、Anchor設定するとサイズが自動でグリグリ動いて気持ちいいんだけど、
ボタンとか配置した時に思うように動かないから、怖くて使えねぇ;;
みんなは使いこなしてるの?

200:デフォルトの名無しさん
13/12/04 13:46:18.31
C#でプログラミングしていて凄い発見をした。すべてstaticメソッドにするとアホみたいに捗る。
スレリンク(poverty板)

201:デフォルトの名無しさん
13/12/04 15:50:10.28
>>198
起動即初期化だから、staticクラスが使えない場合も少なくない

202:デフォルトの名無しさん
13/12/04 16:47:41.87
staticコンストラクタが動くのは、
初めて型にアクセスしたときだったような

203:デフォルトの名無しさん
13/12/04 18:01:12.07
>>201
それをお前に教えた奴つれて来いよ
膾にしてやる

204:デフォルトの名無しさん
13/12/04 18:13:29.76
URLリンク(www.microsoft.com)
C# Language Specification 5.0

10.12 static constructors (P713-714)
The execution of a static constructor is triggered by
the first of the following events to occur within an application domain:
* An instance of the class type is created.
* Any of the static members of the class type are referenced.

205:デフォルトの名無しさん
13/12/04 19:20:47.71
ジェネリック型のstaticメンバーをどうやって起動時に初期化すると思ったんだろうか

206:デフォルトの名無しさん
13/12/04 19:31:49.46
まったく関係ない話だが、VBはインスタンスフィールドをインスタンスメンバーで
初期化できるんだよね。

安全性を考えればC#の仕様の方が妥当なんだろうけど、時々この機能があったらと思うときがある。

207:デフォルトの名無しさん
13/12/04 19:32:49.44
上の初期化ってのは宣言と同時の初期化のことね。

208:デフォルトの名無しさん
13/12/04 20:03:43.93
そんなことよりoption引数の初期値にメンバ指定させろ

209:デフォルトの名無しさん
13/12/04 22:45:59.86
globalの使い道がわからん

210:デフォルトの名無しさん
13/12/04 22:51:15.22
名前が被らないようにするためにglobal::System.Consoleのようにして使う
基本的にコード自動生成ツールを作るときに念のため使うもので、普通は要らない

211:デフォルトの名無しさん
13/12/04 23:53:30.21
なるほど
普通は使わんな

212:デフォルトの名無しさん
13/12/05 00:12:54.30
無理やり必要にしてみる・・・
namespace Foo {
 class System {
  public const int Console = 0;
 }
 class Hello {
  const int Console = 7;
  static void Main() {
   global::System.Console.WriteLine("Hello");
   //System.Console.WriteLine("Hello"); // error
  }
 }
}

extern aliasと並んで使わない機能の2トップ

213:デフォルトの名無しさん
13/12/05 00:48:44.33
extern aliasはどうしても同じライブラリの別バージョンを使わないと仕方がない場合に神
一番意識して使うことが少ないのはpartial methodだろ

214:デフォルトの名無しさん
13/12/05 06:42:21.15
partialメソッドはカスタムツール作らなきゃ定義する必要がないし
T4のおかげで敷居は下がったのかな?

215:デフォルトの名無しさん
13/12/05 08:56:43.65
適当にHttpListener使って簡単な串作ろうとしたんだけど、
アドレスのホスト名がIPになるとListenerが受け付けてくれない。
具体的には、例えば URLリンク(google.co.jp) は受け付けるけど、
同じくグーグルのアドレス URLリンク(74.125.235.87) になると Bad Request (Invalid Hostname)
なんだけど、これは仕様なのかやり方が悪いのか回避方法があるのか分からないので教えてくだしあ
URLリンク(ideone.com)

216:デフォルトの名無しさん
13/12/05 08:58:14.86
管理者権限が必要よ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch