C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/04/22(土) 15:36:53.26ID:S+KK7a41
■Visual Studio 2015 Community & Express (無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

■コードを貼る場合はこちら
http://ideone.com/

■前スレ
C#, C♯, C#相談室 Part92 (実質93)
http://echo.2ch.net/test/read.cgi/tech/1485589613/

■次スレは>>970が建てる事
建てられない場合は他を指定する事。
2017/07/10(月) 23:45:05.83ID:4EPWS+qv
>>421
適切に使えばそれなりにうまくやれる
2017/07/11(火) 01:04:14.26ID:jBoq5GOq
宝箱が開けれるようになるヤツだな知ってる
2017/07/11(火) 09:23:49.97ID:8YiL7FbQ
>>411
できるだけIQueryableでメソッドチェーン引き回して最後にToListしようよってことだと思う
最後は必ず実体化しないとならないのだから、非推奨とかないはず
2017/07/11(火) 11:23:21.32ID:j1/9qlNe
>>424
foreachで処理するならToList要らないし、他の処理にListで渡す必要がある時ぐらい?
2017/07/12(水) 18:55:32.52ID:VmPmhunD
くだらないことにばっか頭使ってんだな。
427sage
垢版 |
2017/07/17(月) 22:08:05.23ID:mirtEFzj
EFで質問なのですが

<connectionStrings>
<add name="Model1" connectionString="data source=PC1 ・・・" />
<add name="Model2" connectionString="data source=PC1 ・・・" />
<add name="Model3" connectionString="data source=PC1 ・・・" />
</connectionStrings>

↑のModel1,2,3はApp.configに記録されているEntityで使う接続文字列の情報ですが

public partial class Model : DbContext
{
public Model()
   : base("name=Model1")
{
}

public virtual DbSet<Table_1> Table_1 { get; set; }



  }

↑のようなModel1の接続文字列の引数を
textBox1に1を入力ならModel1、2ならModel2に切り替えたいです。
428デフォルトの名無しさん
垢版 |
2017/07/17(月) 22:09:31.18ID:mirtEFzj
>>427
string strA = "name=Model1";

public Model()
   : base(strA)
{
}
↑のような書き方だと オブジェクト参照が必要ですとでるのでアドバイスお願いします。
2017/07/17(月) 23:32:05.96ID:vIOL7FYw
>>428
Model(strA)
430デフォルトの名無しさん
垢版 |
2017/07/18(火) 00:06:41.77ID:ijlJ8UfF
>>429
うまくいきませんもう少し詳しくお願いします。


↓なら動くのですがModel1,2,3の切り替えをアドバイスが欲しいです。

const  string strA = "name=Model1";

public Model()
   : base(strA)
{
}
2017/07/18(火) 07:10:33.87ID:s/73FSwK
ここ↓が参考になるかも
C#でApp.ConfigのConnectionStringを取得する - normalian blog
http://normalian.hatenablog.com/entry/20090115/1231992331
2017/07/19(水) 00:18:56.79ID:ExUM14FQ
構造体の1次元配列なんだけど、

(1) 4byte境界に配置されるって理解であってる?できればMSDNか何かの
ドキュメントのソース付きでお願いします

(2) これを制御する属性ってありましたっけ?
2017/07/19(水) 00:23:41.88ID:zZzg+aGc
>>432
StructLayout属性
2017/07/19(水) 18:23:24.47ID:Xu5lLRpu
今気づいたけど、C#って、
int a = 0xffffffff;

って書けない?
いちいち

int a = unckecked((int)0xffffffff);
って書かないといけないのか?
2017/07/19(水) 18:29:47.58ID:0ZOLJsT0
int a = -1;
2017/07/19(水) 18:44:23.24ID:+nk+bbHI
>>434
0xと0bは使えるでしょ?
2017/07/19(水) 18:50:14.88ID:EnlQf9aN
>>436
0x7fffffffまでは使えるがそれ以上はuintと認識される
2017/07/19(水) 19:10:46.93ID:Xu5lLRpu
既定でuncheckedなのに何でリテラルだとこんな余計なお世話の仕様になってるのかね
2017/07/19(水) 19:20:15.67ID:0ZOLJsT0
intに範囲外の数値入れようとするのが悪いw
2017/07/19(水) 19:21:19.85ID:+Y2q8IT3
intに範囲外の数値入れようとするのが悪いw
441デフォルトの名無しさん
垢版 |
2017/07/19(水) 19:28:41.57ID:XwmZjWyO
var a = 0xffffffff;

うおおおおおおおおおおおおおおおおおおおおおおおおおおおおお
2017/07/19(水) 19:38:39.26ID:EnlQf9aN
>>441
桁倍にしても有効だぞ、良かったな
ここ初心者のスレか
2017/07/19(水) 20:00:47.31ID:rzESQlxY
>>437
そらそやろ
2017/07/19(水) 20:04:54.85ID:twQ1sttd
>>438
そらオーバーフローすることが分かりきってるからに決まってるだろ
C#ではオーバーフローすることが予め分かっている場合は必ずuncheckedを明示的に指定するのが正しい作法
そうしておけばコンパイルオプションでcheckedに変えてデバッグできる
445デフォルトの名無しさん
垢版 |
2017/07/19(水) 20:04:57.84ID:XwmZjWyO
居るんだよなあどこにでもvarに嫉妬するやつって
2017/07/19(水) 20:37:22.76ID:Xu5lLRpu
>>444
そんなしょういもない意見を偉そうに言われても

オーバーフローすると分かり切ってるかどうかはまったく明らかじゃない。
0xffffffffの型をuintのリテラルだと解釈すればその通りだけど、これは4バイトのビットイメージを表していると
解釈すればオーバーフローじゃないし、そういう解釈を採用することだって可能だったはず。

そもそも16進表記の用途ってそういうものだし。
だいたい、
int a = 0xffffffff;
こう書けて困る奴がいるのか。
2017/07/19(水) 20:41:34.71ID:98PRqi2l
Cでも使ってろよ。
2017/07/19(水) 20:42:05.04ID:+Y2q8IT3
> そもそも16進表記の用途ってそういうものだし。
それはおまえが思ってるだけ
2017/07/19(水) 20:45:59.23ID:98PRqi2l
ビットイメージならunsigned使うわ。
2017/07/19(水) 20:46:36.08ID:EnlQf9aN
>>446
SingleやDoubleでもビットイメージとして判断するのか
めんどくさいやつだな
2017/07/19(水) 20:47:20.63ID:343mOtvi
decimalってビットイメージ出来るのかね
構造上無理そうだけど
2017/07/19(水) 20:49:23.21ID:Xu5lLRpu
まあ、やっぱり規定でunckeckedなのにリテラルや定数で初期化する時だけ
チェックが入るのは一貫性がないし、余計なお世話としか思えないね
2017/07/19(水) 20:50:37.07ID:Xu5lLRpu
>>450
めんどくさい馬鹿だけど、その型をそんな用途に使う馬鹿がいたらな
2017/07/19(水) 20:52:25.37ID:98PRqi2l
今のC#はもはやC++屋が使えるレベルの代物じゃない。ゴミだよ、ゴミ。
2017/07/19(水) 22:01:41.86ID:9Vel0OtR
C++屋が?
2017/07/21(金) 06:34:16.61ID:d8W3Jw8S
わかりきったこと聞くなよ
2017/07/21(金) 07:25:07.52ID:h5hvtEqn
馬鹿が使うC#だからな
2017/07/21(金) 23:51:31.37ID:JdAThHVQ
>>446
unchecked不要は意見として分からなくもないが、
キャスト不要は無理筋でしょ。

// キャストは必須
uint x = 0xffffffff;
int y = (int)x;
// 定数の時のunchecked必須はお節介?
const uint x = 0xffffffff;
int y = unchecked((int)x);
2017/07/21(金) 23:53:42.06ID:+Ec9GEX5
言語仕様としてはガチガチにするべき。
2017/07/21(金) 23:55:11.01ID:VLbcOU7T
つまらんところにこだわるのはコードあまり書かない人だと偏見を持ってる
2017/07/21(金) 23:57:49.85ID:+Ec9GEX5
分野は違うけどイチローってほんと細かいこと拘ってるよな。MSで言えばカトラーが細かいことに煩いか。
2017/07/22(土) 00:05:45.89ID:HGcWbmUZ
自由な環境で仕事できてる幸運な人はこだわりも強い
そんなことを言ってられない可哀想な人はこだわりなんて持てない
2017/07/22(土) 00:13:32.06ID:aL/Y+CP+
それに比べてヘジは妥協ばかりだなぁ。
2017/07/22(土) 01:07:20.68ID:edA5aDli
>>458
個々のリテラルごとに型がきちんと確定しないと式の解釈があいまいになるのは分かるけど、
整数の定数式なんかビットイメージをそのまま代入してくれた方が便利だしそれで誰も困らんと思うけどな
2017/07/24(月) 17:38:17.44ID:zqz/aOFQ
this.xxx
みたいな使い方のthisキーワードって極力省略すべき?
それともなるべく書くべき?
省略すべきときと書くべきときの使い分け方あったら教えてほしい
2017/07/24(月) 18:24:36.68ID:NUVOTero
そもそもthisを経由しないメンバ呼び出しを「省略」だっていう認識がおかしいと思うよw
であれば、どうすべきかは自明じゃないのかな
2017/07/24(月) 19:12:11.02ID:OUv6HBfP
>>465
俺は引数と名前が被るときぐらいしか書かない
2017/07/24(月) 19:50:37.71ID:YzZxzy1N
>>465
どっちでもいい
コーディング規約次第
規約がないとか仕事じゃないなら好きにするといい
469デフォルトの名無しさん
垢版 |
2017/07/24(月) 19:52:15.25ID:N63h5KIm
>>465
いらない
2017/07/24(月) 20:28:49.72ID:iIer8sIW
>>465
StyleCopは書けと言っている
2017/07/24(月) 20:38:13.55ID:bQt6C+LF
thisという特殊なメンバ変数を持っている
ただその変数から間接的に参照できるってだけなのかな
それなら必要に迫られない限りわざわざ使う必要はない気がする
2017/07/24(月) 21:08:43.55ID:+C1DpUqY
同じ名前のメンバーとローカル変数を区別する時に必要だな
2017/07/24(月) 21:08:44.72ID:rFcqzFTD
メンバー変数を表すプレフィックス(m_とか)を付ける位なら、thisを付ける
2017/07/24(月) 21:13:19.72ID:/pYWVXm9
typescriptはthis必須
2017/07/24(月) 21:18:06.41ID:vlNeOTKM
今のVSは必須でないときにthis付けるとデフォルトで警告出るね
2017/07/24(月) 21:18:16.25ID:W8FE/dUa
必ずしも必要ないとき、thisの有無で生成される中間コードって変わるの?
477デフォルトの名無しさん
垢版 |
2017/07/24(月) 21:39:57.27ID:gSQHFbLF
>>476
な訳
2017/07/25(火) 22:18:16.96ID:i4RyLWeT
書いた方がいいよ、this。どこの変数か分かりやすい。
今は被らなくても何年か修正し続けるうちに
いつか被るかもしれないし。
2017/07/25(火) 22:25:58.27ID:Oz2LyY6P
どこの変数か分からない名前付けしているの?
2017/07/25(火) 22:31:41.46ID:Qr8ugTQa
>>479
どういう名前付けてる?
2017/07/25(火) 23:11:04.94ID:zpZ2WILs
m_
g_

前に付けたらすべて解決。
2017/07/25(火) 23:28:09.07ID:6OYkKaWV
どこの変数か分からなくなるような長いもん書くなというアレだっけ
2017/07/25(火) 23:37:16.47ID:7hsh9F6M
アンダースコア入れない派。
mXxx
もしくはアンダースコアのみ。
_xxx
2017/07/25(火) 23:49:27.38ID:VPdIi3jg
>>481
解決も糞もそもそも問題なんか存在しませんってw

thisつける(つけろ)って言ってる人の大半は釣りだと思うけど、
マジで言ってる人は(悪いけど)まともじゃないから相手にしちゃダメww
2017/07/25(火) 23:51:38.91ID:VPdIi3jg
それと、仮にC#でフィールドにプリフィクスつける意味があるとしたら、
それはプロパティやそのバッキングフィールドとの区別をつけやすくするため。

それ以上の意味はないし、それも本当に意味があるかかなり怪しい
2017/07/25(火) 23:57:15.08ID:zpZ2WILs
(※個人的な感想です。)
2017/07/25(火) 23:58:36.91ID:7wirVU/N
しばらく考えていたらthisをつけたらいい理由が思い浮かんだ
なんとなく納得したけど自分のコードではつけない
2017/07/26(水) 00:08:11.62ID:CEnmMLln
C#ではメンバーアクセスはプロパティで行うのが基本
大文字小文字が違うから引数やローカル変数とかぶることはまずない
2017/07/26(水) 00:22:23.76ID:QV6iOXIK
さっき思いついたのはそんな理由じゃなくてバグの温床になるからだ
途中でコード変更してメンバ変数と同じローカル変数を加えると
それまでメンバ変数に対する処理や参照だったものが全部ローカル変数がターゲットになってしまう
int a=0
int Calc()
{
a++;
return a;//これはthis.a 1
}

int a=0
int Calc()
{
int a=100;//これを追加
a++;
return a;//これはローカルa 101
}
2017/07/26(水) 00:28:55.60ID:Pjw6cyms
自分はthisつけない派だけどいつかバグは出してもおかしくない
ローカルとメンバ変数同じ名前にしなければ問題がないけど
listやtextやcountはやりそうで怖い
かといってアンダースコアもつけたくない
2017/07/26(水) 00:30:38.05ID:qHYVpVTl
名前忘れたときに一覧出すためにthis.って打つだけや。
2017/07/26(水) 01:06:05.63ID:u+EoOV6S
>>489
そういうのを「為にする議論」という
温床てw
蓋然性が存在するのと「温床になる」って全然レベルの違う話でしょw
2017/07/26(水) 01:35:50.01ID:byKyVLqN
好きにすればいいよ
思いこみを語ろうとする人は仮説検定してから述べて
2017/07/26(水) 03:13:40.70ID:wiJa4ooL
de:code2017でMSのちょまどはthis付けろって言い張ってんじゃん
インテリセンス利くからやりやすいじゃんって感じだったけどね

int aみたいな一文字ローカル変数なんて使うならthis打たんのだろうがの
2017/07/26(水) 03:48:31.27ID:ffnmq/c1
thisつけない派だけど困ったことないなー
クラスがでかすぎるとかメソッドがでかすぎるとかを起因として名称が増えまくって名前が被るんじゃね?って思ってしまう
2017/07/26(水) 04:38:24.67ID:NppfEv0Z
メンバ名は大文字から書いて、ローカル変数は必ず小文字から書くので重複はないと信じたいが不安はある
2017/07/26(水) 07:44:08.72ID:3xAC3WuT
>>494
一文字はともかく、ローカル変数の名前なんか短くていいわ
俺はローカル変数は極力一単語で済ませるようにして、
それ以上長い名前を付けたくなったらスコープが長過ぎることを示す悪い匂いだと考えてる
2017/07/26(水) 08:01:32.50ID:3xAC3WuT
あと長い名前を付けたがるケースとしてありがちなのが、同じものを表す変数に対して一貫して同じ名前を使うことで品質を高めようというCOBOL的発想
必ずしも悪いとは言わないけど、大抵は適切にクラスを使えてないだけ
2017/07/26(水) 08:39:55.25ID:op+tX9S+
移譲で内部に別クラスを持ち、クラス名をプロバティーにして、それを内部で使うときにthis使うかな
2017/07/26(水) 10:14:48.48ID:Pjw6cyms
ちょまどもその程度なんだよ
2017/07/26(水) 10:38:12.08ID:NHLh2Zn7
ガイドラインやルールで決まってないんだから
ローカルルールに則っときゃいんだよ。趣味なら好きにすりゃいいし、ちょまど信仰者なら言うこときいときゃいい
2017/07/26(水) 11:05:22.72ID:Cox8uos8
だーから、スコープによる隠蔽がバグの原因になるって
蓋然性としてはありうるが現実にありがちかって言えば全然そうじゃないよw

長年プログラマやってるけど、少なくとも俺は一度も経験ないね。
だいたいそれが本当にバグの原因になるのならthis付けろじゃなくて
隠蔽なんかなくせと主張するのが正しい。
オーバライドもオーバーロードも使えなくなるけどね

インテリセンスにクラスメンバー一覧を表示させるためにthisをつける(つけろ)って言う奴もバカ。
本当にそんな機能が欲しいなら、そんな姑息的手段じゃなくてインテリセンス自体に
そういう機能とショートカットキーを追加してくれと主張すべきだ

いやそもそもいらないけどねそんな機能
2017/07/26(水) 11:24:14.60ID:Pjw6cyms
>>502
言語仕様変えろって言うほうがおかしいだろw
頭大丈夫か?
2017/07/26(水) 11:26:18.98ID:Pjw6cyms
ありがちじゃないからこそ問題なんじゃないか
指摘されるまでそれが問題だなんて意識すらしてない
2017/07/26(水) 11:35:37.24ID:Cox8uos8
>>503-904
頭悪すぎて反論する気にもならん。
2017/07/26(水) 11:45:50.66ID:Cox8uos8
まああれだ、杞憂って言葉があるけど、>>504は今後一切外に出ない方がいいよ。
だって外に出たら、隕石が君の頭上に落ちてくる蓋然性は存在するからな。

そんなこと地球上で何十年に一人経験するかどうかってレベルのはずだが、>>504によれば
ありがちじゃないからこそ問題なんだよね。

指摘されるまでそんな問題が存在すると意識してなかったろうけど、
今ちゃんと指摘したよ?
2017/07/26(水) 12:02:11.22ID:Pjw6cyms
ここまでのアホは見たことない
触るだけ損だなw
2017/07/26(水) 12:04:27.95ID:Pjw6cyms
>>506
それだったらデバッグする必要ないよな
お前はテストも否定しそうだな
お前の言い方じゃ10年に一度起こるバグもほっとけばいいんだろ
2017/07/26(水) 12:10:17.45ID:iRPu4Cf2
>>505
お前のせいで904までアンカーついたぞ
死ねハゲ
2017/07/26(水) 12:14:59.82ID:86kwINRT
レスの多い方が勝ちだとでも思ってんのか
昼休み終わったらそれ以上続けるなよ
2017/07/26(水) 12:26:52.20ID:NHLh2Zn7
ばかvsばか
まさに熱い夏
2017/07/26(水) 12:41:56.40ID:k3AkEgWV
絶許狙いのガイジID:Cox8uos8に触れるな
2017/07/26(水) 20:08:10.13ID:qHYVpVTl
急に単発の煽りが増えたなぁ。そういえばゆとりは夏休みやな。
2017/07/26(水) 21:24:47.56ID:5gVt8qYH
thisつけないってヒトのレスは頭オカシイから
自分は今後はthisつけるようにする。
2017/07/26(水) 21:55:49.84ID:jF4Wb4A9
そんなあぼーん宣言みたいなしなくていいよ
負け犬臭い
2017/07/26(水) 22:02:24.09ID:/gzQVqUl
会社のルールとかじゃなければ自分の好きにしたらいいのに
何のために2chで「俺はこう書くぞ」宣言なんかするんだろ
2017/07/26(水) 22:02:24.86ID:Cox8uos8
それが自覚できないから言ってるんだから言っても無駄だよw

頭の悪い奴って総じて自分が見えてないし自分に突っ込む能力がないし
自分が他人からどう見えるのか考える能力が欠如してるから見てて笑えるけど、
なんか哀れだよね。
2017/07/26(水) 22:03:05.46ID:Cox8uos8
>>516
うん、絵に描いたような酸っぱいぶどうだねそれ
2017/07/26(水) 22:09:22.94ID:Cox8uos8
頭悪い奴ってさあ、議論で勝てないとすぐにこうやって問題をずらすんだよね。
そんあすっぱいぶどうを取る方法を議論してどうするんだ、ってねw

そんなことで勝ったつもりになれるところがまた頭の悪い所以でもあるんだけど、
それがただの幼稚な防衛機制でしかないことに本人がまったく気が付いてないところが
見てて哀れだよねほんと
2017/07/26(水) 22:18:53.17ID:0qyy9e35
頭悪い奴って毎回長文だよね
2017/07/26(水) 22:42:01.16ID:qHYVpVTl
逆やw ふつうは馬鹿のほうが長文は書けへんもんやw
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況