X



ふらっと C#,C♯,C#(初心者用) Part130 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001ななしぃ♯ 転載ダメ©2ch.net (ワッチョイ 93aa-SrFS)
垢版 |
2017/07/18(火) 06:40:45.47ID:mH9qbH+m0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

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

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part129
http://mevius.2ch.net/test/read.cgi/tech/1497000961/

■関連スレ
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
0294デフォルトの名無しさん (アウアウイー Sa29-tw3x)
垢版 |
2017/08/03(木) 21:01:13.46ID:eLAt0wVza
また始まったよ
質問者叩いてる奴こそ>>1のテンプレを「基本から見直せ」バカが。

俺はもともと「ふらっと」スレの存在意義なんか認めないけど、
こうやって質問者叩いてるバカに限ってスレ統一しろっていうと反対するのな
0297デフォルトの名無しさん (ワッチョイ 4d9d-VahU)
垢版 |
2017/08/03(木) 21:06:50.15ID:Wy5AX0em0
それは君がこのスレを便所だと思っているから言える発言であって
便所に住んでる人からしたらここが自分の部屋なんですよ

スレ民は自分が便所に住んでることを思い出してください
0298デフォルトの名無しさん (ワッチョイ 4d9d-VahU)
垢版 |
2017/08/03(木) 21:09:58.25ID:Wy5AX0em0
>>296
それはおかしい
彼はここが便所であると思っていて
ヤジは飛ばせど、関わりあいたくないと考えているのだから
質問には答えないし、そのつもりも無いハズだよ
答えるのはあくまでスレ民の仕事だと
0307デフォルトの名無しさん (ワッチョイ 5723-FJki)
垢版 |
2017/08/04(金) 21:32:08.81ID:eXZebYv+0
つい最近C#を学習し始めた者です。
null演算子について質問させてください。

null条件演算子/合体演算子を解説しているサイトや書籍に
下記のような両者の併用が紹介されていたのですが、
良く理解できませんでした。

result = a?.xxx ?? b

a.xxxのnullチェックは合体演算子がやってくれているように見えるのですが、
何故a.xxx自体にも条件演算子を設けているのでしょうか?
合体演算子だけを利用した場合とどのように違うのでしょうか?
0323デフォルトの名無しさん (ワッチョイ 3f32-aBMt)
垢版 |
2017/08/05(土) 01:07:52.45ID:L80K1fJH0
>>317
よくある処理の割に記述が長くなるから、簡潔に記述出来るように追加された文法だし。
記述が減ればそれだけバグが入り込む余地が減るし、慣れれば等価コードより読みやすい。
0328307 (ワッチョイ 5723-FJki)
垢版 |
2017/08/05(土) 02:25:47.56ID:a3wHtGnJ0
皆さんレスありがとうございます。

>>309
>>310
なるほど!
仮に>>307の式を合体演算子だけでやると、
a.xxxのnullはチェックできてもa自体のnullは検知できないから
aがnullだと例外になってしまうという事ですね、やっと理解できました
0331デフォルトの名無しさん (ワンミングク MM1b-i7eW)
垢版 |
2017/08/05(土) 08:28:33.27ID:d5W5Muf+M
自分が使う機能を他人が使えない方が悪いと考えるタイプの人間
自分が使えない機能を使う他人の方が悪いと考えるタイプの人間
どっちもどっちの気がするけど
チームや会社の成長や将来性を考えると前者の方がいいよね
後者が群れると互いの足の引っ張り合いになって永遠に停滞する
0336デフォルトの名無しさん (ワッチョイ ed7f-dE0h)
垢版 |
2017/08/05(土) 11:20:19.76ID:POjfJmBG0
うちの親戚の子供がそうだった。
生まれたときからウォシュレット付きの洋式便所だったからウォシュレットがないところは嫌がるし、、
和式にしゃがむこともできない。たぶんボットン便所なんて怖がって近寄らない。
0339デフォルトの名無しさん (ワッチョイ 7b91-dE0h)
垢版 |
2017/08/05(土) 11:43:09.69ID:YGVZb4Ys0
言語仕様は知らねー方がバカなんだよ
例えばExcelに入った商品リストの合計額調べるとき
・SUM関数使う
・セル1個ずつ選択して足す
・電卓で1個ずつ計算して記入する

どのレベルに合わせるべきかってことよ
SUM関数なんてExcel関数知らんとわからんやんセル一個ずつ足せって言うバカいるかって話
データがそもそもExcelじゃなくて紙ベースデータみたいなときはしゃーない電卓で計算するがの
0340デフォルトの名無しさん (ワッチョイ eb9d-3aaz)
垢版 |
2017/08/05(土) 12:12:37.78ID:FiPcVS8O0
>>307,309
より厳密には
result = ((a != null) ? a.xxx : null) ?? b;
と等価。三項演算子使わないとこうかな?(よく確かめてない)
if(a != null)
{
var temp = a.Value;
if( temp == null)
{
result = b;
}else{
result = temp;
}
}else{
result = b;
}

xxxがプロパティやメソッド呼び出しなら、複数回呼ぶと遅くなったり副作用があったりする可能性がある。
あと、スレッドセーフにも関わってくる
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/operators/null-conditional-operators

MSDNにも書いてある
A?.B?.C?[0] ?? E
とかをパフォーマンスやスレッドセーフを考慮して妥当に展開すると十行では収まらないコードになる。
構造からの取り出しの場合同様の処理が連続する可能性も結構あってnullチェックで埋め尽くされるのでNull条件演算子は使えるなら使うべき
0344デフォルトの名無しさん (アウアウウー Sa1f-gAma)
垢版 |
2017/08/05(土) 14:09:36.65ID:QMwZUMGFa
?演算子の後にドット演算子が来ているようだし

単体で?だと三項演算子とかぶるからMSは ?. と ?[ (?[ ] ではない)の二つを
null条件演算子と呼んでいる

充分気持ち悪い
0347デフォルトの名無しさん (アウアウイー Sa29-9Sud)
垢版 |
2017/08/05(土) 18:41:13.40ID:JI4Kw2jEa
UI部をバージョン依存にして
中の処理をバージョン非依存とかに
する造りじゃないと駄目だな

同じc#で作ったものすら移行できないのは俺らのせいじゃなくて言語作ってる奴が馬鹿なんだから
0350デフォルトの名無しさん (ワッチョイ b361-/FH4)
垢版 |
2017/08/05(土) 20:04:55.97ID:jKU+//lw0
C#2.0で作ったプロジェクトとソースなら現行のものでビルドしたら問題なく動くんだが
初心者スレで間違った情報広められても困るし業界談義は他でやってもらえないかな
0356デフォルトの名無しさん (ワッチョイ 2b19-/FH4)
垢版 |
2017/08/06(日) 13:00:00.86ID:BrCgX9l20
元MSだった奴がいってたけど

VS2010当初でも開発に2,000人関わってたらしいよ。


旧バージョンを使って次のバージョンを作っていたとか

VS2010でVS2015といった具合
0357デフォルトの名無しさん (ワッチョイ f7f4-FEhw)
垢版 |
2017/08/06(日) 22:21:19.12ID:KuiVNrm90
SharpDevelopを使ってとあるソースを開いて、ビルドしたらNewtonsoft.Jsonが無いよ、と。

SharpDevelopに組み込まれてるNuGetでNewtonsoft.JsonをインストールしようとしたらNuGetが古過ぎてインストールできません、と。

NuGetコマンド単体の最新版を落としてNewtonsoft.Jsonパッケージを導入した。
でもビルドするとNewtonsoftっていうNamespase知りません、みたいなエラー(CS0246)に。

パッケージがGACに入ってる必要があるの?と思ってGacutil.exeを使おうとするも、Visual Studioにしか入ってないっぽい。
でも諸事情でVisual Studioはいま使えない。

何とかSharpDevelopでビルドを通したいんです。何が足らない || 間違ってるのでしょうか?
0363デフォルトの名無しさん (アウアウイー Sa29-tw3x)
垢版 |
2017/08/08(火) 20:37:03.55ID:huw00Yx4a
>>362
書いた人に聞かないと分からないでしょ

まあ、推測だけど、たぶんクラスAと一緒にしか使われない、
従属的なクラスBがあったとして、BをAの内部クラスにしたら
そういう従属的な関係が分かりやすくしたいという意図なんじゃないか。

たぶん今時の流儀じゃないと思うけど、.NET 1.0の時代からあるWindows Formなんか
そういうのいくつかあった気がする
0364デフォルトの名無しさん (ワントンキン MM73-op1F)
垢版 |
2017/08/09(水) 11:25:35.60ID:eM0BjlR2M
Formクラス1つに対応するビジネスロジッククラス1つを作ること
0個でもだめだし2以上でもだめ

っていう頭のおかしいコーディング規約を押し付けてきたバカSEがいて
そのアホくさい制約を回避するために内部クラスを多用したことがある
0369デフォルトの名無しさん (ブーイモ MM5b-X+Zd)
垢版 |
2017/08/09(水) 13:03:58.48ID:aEwDYdDeM
それを疑問に思わないレベルのバカPGばかり相手にしてるんだろうから仕方ない
PGの能力に全く期待しない前提なら悪くないルールだと思う
参考にさせてもらうわ
0370デフォルトの名無しさん (アウアウイー Sa29-tw3x)
垢版 |
2017/08/09(水) 13:21:54.76ID:25dY/z/Na
>>366
あと、内部クラスって外側の非publicのメンバにもアクセスできるので
(当然インスタンスメンバの場合は参照握ってる必要があるけど)
publicにはしたくないけどある特定のクラスにだけアクセスを許したい、
っていう事情もあった可能性もあるね。
0374デフォルトの名無しさん (ワッチョイ 9aea-J0Eq)
垢版 |
2017/08/10(木) 03:50:16.42ID:p+YoIwRr0
あるブランチの、あるブランチ(例えばmaster)との差分が
わかる方法ってないですかね?
今は別ディレクトリにクローンしてディレクトリの差分を見ています
0375デフォルトの名無しさん (ワッチョイ 9aea-J0Eq)
垢版 |
2017/08/10(木) 03:51:33.59ID:p+YoIwRr0
>>374
誤爆しました。すみません
0376デフォルトの名無しさん (ワッチョイ a332-W16a)
垢版 |
2017/08/11(金) 13:17:03.53ID:6/W84wqN0
あるファイルと削除しようとすると
「別のプロセスで使用されているため、プロセスはファイル XXXX' にアクセスできません。」と出ます。
vshost32.exe がファイルを掴んでいるので削除できないようです。

なのでVSを終了すれば削除はできます。
自分自身が掴んでいるファイルを削除するのはどうすればいいですか?
別にexeを作成して終了後に起動して削除するくらいしか思いつかないのですが・・・
0377デフォルトの名無しさん (ワッチョイ 4e61-aEKd)
垢版 |
2017/08/11(金) 14:04:52.87ID:es+zQmez0
>>376
「あるファイル」も状況もよくわからないが
プロパティからデバッグの項目開いて「Visual Studio ホスティング プロセスを有効にする」のチェックを外す
コード上で掴んだファイルがそのままとか言う話ならそのコード示して
0380デフォルトの名無しさん (ワッチョイ 4e61-aEKd)
垢版 |
2017/08/11(金) 18:38:14.54ID:es+zQmez0
>>378
それはこれだな
http://dobon.net/vb/dotnet/graphics/drawpicture2.html
ファイルパスを直接渡さなければいいのでストリームでなくてもバイト配列にしてもいい
わかりにくくなるが一行で済ませるには
(Image)new System.Drawing.ImageConverter().ConvertFrom(System.IO.File.ReadAllBytes(filename))とか
>>379
usingから外れると自動でDispose()されるから、それはC#と違う話じゃないかな
■ このスレッドは過去ログ倉庫に格納されています

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