[過去ログ] C#, C♯, C#相談室 Part94 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(2): (ワッチョイ 935f-5Uxj) 2019/03/20(水)18:57 ID:ZZcTomnN0(1/3)調 AAS
!extend:checked:vvvvv:1000:512
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

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

■前スレ
C#, C♯, C#相談室 Part93
2chスレ:tech

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。 VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
903: (ワッチョイ 515f-vonH) 2021/11/05(金)19:37 ID:1GMX4TDW0(1)調 AAS
API使わずにスクレイピングっていいのか?
904: (ワッチョイ 6924-MNeM) 2021/11/05(金)21:29 ID:U9pi1OEC0(1)調 AAS
非公式API使って制限回避してもいいぞ
905: (ワッチョイ 5e2c-vonH) 2021/11/05(金)23:15 ID:/IlkeVzp0(1)調 AAS
各サイトのルールは、robots.txt を見ればよい

そこに、スクレイピングできる間隔などが書いてある
906: (ササクッテロ Sp79-y4Tz) 2021/11/08(月)19:23 ID:jl5nUU4op(1)調 AAS
SQLのパラメータって使いまわせなかったっけ?

例えば下みたいなSQLがあったとして
string sql = "UPDATE HOGE_TBL SET HOGE = :hoge WHERE HOGE = :hoge ";

パラメータが下1つだけだったら更新件数0件で上手く動かない…
cmd.Parameters.Add(new OracleParameter(":hoge", "huga"));

Javaだと上手く動くけどC#は明示的に分けないとダメな感じ?
907: (ワッチョイ 925b-H2rd) 2021/11/08(月)19:27 ID:ZmPcj5XX0(1)調 AAS
hugaじゃなくてfugaじゃないかな
908
(1): (アウアウウー Sacd-jU0I) 2021/11/08(月)19:47 ID:eIDHMWNda(1)調 AAS
BindByName
909: (ササクッテロ Sp79-y4Tz) 2021/11/09(火)12:25 ID:+zMu32a8p(1)調 AAS
>>908
?クス
910
(1): (ガックシ 0671-09aj) 2021/11/12(金)14:47 ID:LR2kPQ3V6(1)調 AAS
最近c言語習い始めた初心者なんですがwhile()のカッコ内の条件式に論理演算子を使うことはできますか
もしできるならif文の時のように入力すればいいのでしょうか
911: (ワッチョイ 9b4b-/d2h) 2021/11/12(金)14:56 ID:9PEUH50B0(1)調 AAS
>>910
ここはC#の相談室なんだが・・・
まあ、ifの書き方と同じで良いですよ。
912: (ワッチョイ 2524-Ny61) 2021/11/13(土)11:48 ID:WnzBfGlt0(1)調 AAS
C#10で文字列補間が大幅に最適化されたってことらしいけど、
stringオンリーの4個以内(Concatの最大引数以内)以外は$"{}"で繋げていった方がむしろパフォーマンス良くなるって認識でOK?
913: (ワッチョイ 6d78-wd7R) 2021/11/13(土)12:46 ID:+IhS2fUi0(1)調 AAS
ベンチマーク取れば?
914: (ワッチョイ 7501-D258) 2021/11/17(水)00:43 ID:qSiAIVdk0(1/2)調 AAS
わけあってVisual Studioをインストールできない環境があるのですが、
その環境で
Windows標準のC#コンパイラ(C:\Windows\WinSxS配下のcsc.exe)

Visual Studio Code
でC#コンパイル環境を作成したいのですができますか?

以上、よろしくお願いいたします
915
(1): (アウアウウー Saa9-09aj) 2021/11/17(水)02:16 ID:+JwFzM8Ra(1)調 AAS
できるけど君の場合どうせNuGetで積むんじゃね
916: (ワッチョイ 7501-D258) 2021/11/17(水)18:51 ID:qSiAIVdk0(2/2)調 AAS
>>915
積むかどうかは分からないですね
私は超能力者ではないので
917: (ワッチョイ 7501-09aj) 2021/11/17(水)20:50 ID:iuNg9UQr0(1/2)調 AAS
ビスマルク「愚者は経験に学び、 賢者は歴史に学ぶ」
918: (ワッチョイ cd2f-FDGb) 2021/11/17(水)22:01 ID:GLXZB85w0(1)調 AAS
そもそもコンパイル環境なら、VS Codeすらいらないんじゃ
919: (ワッチョイ 6d78-wd7R) 2021/11/17(水)22:23 ID:oaCBMm/O0(1)調 AAS
VSはダメでVSCodeはインストールできるんだ
よくわからない環境だな
920: (ワッチョイ 4de6-wt4Y) 2021/11/17(水)22:48 ID:OY6bKJls0(1)調 AAS
普通の会社で使えるのは2017までなんだよな
921: (ワッチョイ 4bbb-OGRf) 2021/11/17(水)23:11 ID:SfknQ7Tq0(1)調 AAS
うち2022買ったで
922: (ワッチョイ 7501-09aj) 2021/11/17(水)23:14 ID:iuNg9UQr0(2/2)調 AAS
まだ2021年なのに?
923: (ワッチョイ 7501-09aj) [hage] 2021/11/18(木)09:00 ID:+Wtl3GaA0(1)調 AAS
ジャップには分からんだろうが世界的には9月からはもう2022年だぞ
924: (ワッチョイ 4bb0-WW/G) 2021/11/18(木)21:37 ID:cf0G7PVa0(1)調 AAS
じゃあ日本は4月からもう2022年になってるのか
925: (ワッチョイ 8eda-xqyN) 2021/11/19(金)01:11 ID:4qGzfQ8F0(1)調 AAS
コマンドが格納されたListを順番にサーバへ送信し、
1が返ってきたら次のコマンド送信、1以外かTimeoutしたら即中断みたいな処理を
ractiveでサクッと書けますか?

var cmdList=new List<string>{ cmd1, cmd2, ... };

cmdList
 .ToObservable()
 .TimeOut( ・・・ )
 .SendCommand()
 .WaitResponse()
 .PostRecv(1だったら次のコマンド送信、1以外やタイムアウトなら処理中止);

みたいな感じで。。
926: (テテンテンテン MM8e-YpRD) 2021/11/20(土)22:43 ID:F7Qzv69PM(1)調 AAS
cmdList
.ForEach(x => { if(x.SendAsync(cts.Token).Result == 1 ) throw new Exception() });
927
(1): (テテンテンテン MM8e-YpRD) 2021/11/20(土)22:58 ID:YK5Xmj5SM(1)調 AAS
var results = await cmdList
.ToAsyncEnumerble()
.SlectAwait(async (c) => await c.SendAsync(cts.Token))
.TakeWhileAwait(async (r) => r == 1)
ToArrayAsync();
928: (アウアウウー Sa3b-VuZ6) 2021/11/21(日)00:02 ID:Z3Hc+Mmaa(1)調 AAS
タイムアウトで値や例外が返ってくるタイプだったらいいけど
時間経過で勝手にタイムアウト判定しろよってタイプだと詰みそう
929: 925 (ワッチョイ 8eda-xqyN) 2021/11/21(日)00:41 ID:7ZBVrJXA0(1/2)調 AAS
ReactiveExtentions(System.Reactive名前空間 ver5.0)を使ってます。
自分なりに書いてみましたがこのライブラリの使い方がよくわかってない状態です。
(疑問点をコメントに書きました。分かる方教えてください)

IDisposable d = cmdList
 .ToObservable()
 .Timeout( TimeSpan.FromSeconds( 3000 ) )
 .Select( cmd =>
 {
  var res = this.SendCommand( cmd ) // 自作のコマンド送信関数;
  return res;
 } )
 .Where( res => res == 1 )
 .Subscribe(
  res => /* ここで次のコマンド送信を行う書き方が分からない*/ res.ToString(),
  ex => Debug.WriteLine( ex.Message /* Timeout発生時 */ ),
  ()=> Debug.WriteLine( "Complete" /* 全ての送信完了?それとも1つだけ送信完了? */ )
);

>>927
やはりToAsyncEnumerbleからアプローチするべきなんですかね。。
930: (ワッチョイ 8eda-xqyN) 2021/11/21(日)00:46 ID:7ZBVrJXA0(2/2)調 AAS
Timeout関数の中身は
TimeSpan.FromMilliseconds( 3000 ) // 3秒
の間違いでした
931: (テテンテンテン MM8e-YpRD) 2021/11/21(日)10:42 ID:XHu2qeE/M(1)調 AAS
Rxは監視を行うもの
時系列に沿って要素が流れてくる時に使うもの
なのである要素が流れてきた時に次の要素なんてのはまだ無い
要素が最初から揃ってるListから始めるからわからなくなる
最初から揃ってるなら普通にLinqかforeachを使う
Listでなくストリームならこれでおk

var d = CommandStream
.Select(c => Send(c))
.Timeout(t)
.TakeWhile(r => r == 1)
.Subscribe();
932
(1): (ワッチョイ bf4b-1Ur4) 2021/12/10(金)11:57 ID:ceXBGTs50(1/2)調 AAS
次元の違う配列ではArray.Copy出来ないのでしょうか。

例)
var foo = new int[4];
var bar = new int[3, 4];
ArrayCopy(foo,0,bar,0,4); // 例外発生 "The specified arrays must have the same number of dimensions."

1個づつコピーするしかないのでしょうか?
933: (ワッチョイ df2c-yjVA) 2021/12/10(金)12:19 ID:D7YZScOh0(1)調 AAS
プリミティブ数値型の配列ならBuffer.BlockCopyできるけど
まあ多次元配列なんて肩身が狭いもんだから仕方ないね
934: (ワッチョイ bf4b-1Ur4) 2021/12/10(金)12:40 ID:ceXBGTs50(2/2)調 AAS
classを配列に保存しているから、BlockCopyもダメなんですよね・・・
あまり数も多くないはずなので、1つずつコピー(代入)していきます。
935: (ワッチョイ a724-C40i) 2021/12/10(金)13:17 ID:/7sxHGOs0(1/2)調 AAS
>>932
若干アンセーフだけど行ごとにならSpan利用すればマネージ型でも出来る
for (int i = 0, len2 = b.GetLength(1); i < b.GetLength(0); i++)
foo.CopyTo(MemoryMarshal.CreateSpan(ref bar[i, 0], len2));
936: (ワッチョイ a724-C40i) 2021/12/10(金)13:21 ID:/7sxHGOs0(2/2)調 AAS
MemoryMarshal.CreateSpan(ref bar[i, 0], 5000)とかやっても確か例外でないから最新の注意を払う必要はある
まぁこうやってもソースの長さがデスト以内であれば問題は生じないけど
937
(6): (ワッチョイ c702-p36F) 2021/12/12(日)04:59 ID:/1pFbOYv0(1/3)調 AAS
入力を検知したときにメソッドを実行する処理において、
要素Aがnullでなく(エラー防止)、Aの子要素Boolがtrueの場合のみ処理をスキップしたい場合に いい書き方はありますか?
!A.Bool でメソッドを実行にしてしまうとAがnullだったときに実行されなくなってしまうので……
ひとまずgotoを使って以下のようにしているのですが、もっとスマートな書き方ありますでしょうか

if (Input)
{
if(A != null){
if(A.Bool){
goto INPUTSKIP;
}
}
Method();
}
INPUTSKIP:
938
(1): (ワッチョイ 7f10-xLgN) 2021/12/12(日)08:06 ID:OKsF9IR00(1)調 AAS
null条件演算子 null合体演算子 で検索
939
(2): (ワッチョイ df89-+2Rn) 2021/12/12(日)08:23 ID:V78zeb460(1/3)調 AAS
>>937
こう?
if (Input)
{
if (A != null && A.Bool)
{
// INPUTSKIP
}
else
{
Method();
}
}
940
(2): (ワッチョイ a701-p36F) 2021/12/12(日)09:36 ID:G8rzE1470(1)調 AAS
>>939
それを反転させて
if (Input)
{
if (A == null || !A.Bool)
{
Method();
}
}
941: (ドコグロ MM9f-JVtf) 2021/12/12(日)10:16 ID:2rSkF5hnM(1)調 AAS
>>937
goto 使いたくないと言うなら A が null か、A.Bool が false の時に処理したいってことだから普通に

if(A == null || !A.Bool){ 処理 }

って書くか>>938が言うnull条件演算子とnull合体演算子を使って

if(!(A?.Bool ?? false)){ 処理 }

でいける
個人的にはこの場合だと上の方がわかりやすいと思う
942: (ワッチョイ bfda-0QWB) 2021/12/12(日)10:56 ID:MLGY87ca0(1)調 AAS
後藤さんが出てくると素人臭が漂ってくるからな
943: (ワッチョイ df89-+2Rn) 2021/12/12(日)12:26 ID:V78zeb460(2/3)調 AAS
例外も後藤さんみたいなもんだが
944
(1): (ワッチョイ c702-p36F) 2021/12/12(日)12:48 ID:/1pFbOYv0(2/3)調 AAS
AがnullだったときにORで並べてA.Boolの条件式を使ってしまうとそんなもんないよってエラーを吐くのでは、
と思い込んでいたのですが大丈夫なんですね……!
!A.Boolだけで判定したときに怒られたので頭凝り固まってました!

ありがとうございました!
945
(1): (ワッチョイ 7f7b-ycqI) 2021/12/12(日)13:09 ID:I9KyYKSc0(1/2)調 AAS
>>944
いやショート サーキット評価だからエラーにならないだけ
https://docs.microsoft.com/ja-jp/cpp/cpp/logical-or-operator-pipe-pipe?view=msvc-170
946
(1): (ワッチョイ c702-p36F) 2021/12/12(日)13:17 ID:/1pFbOYv0(3/3)調 AAS
>>945
ああーなるほど、ORの場合どれか1つでも満たされてれば実行されるから
左側が条件を満たしてたら右側はもうチェックされないのか!!
良いこと知れました! ありがとう!
947
(2): (ワッチョイ df89-+2Rn) 2021/12/12(日)13:23 ID:V78zeb460(3/3)調 AAS
vb.netのorだとエラーになる
948
(1): (ワッチョイ 7f7b-ycqI) 2021/12/12(日)13:31 ID:I9KyYKSc0(2/2)調 AAS
>>946>>947
論理演算子2つ並べるのがショート サーキット評価なんだけど
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12181009427
次から初心者スレ行ってくれ
949: (ドコグロ MM9f-JVtf) 2021/12/12(日)14:02 ID:WWmfWzxPM(1)調 AAS
>>947
OrElse 使え

>>948
> 論理演算子2つ並べるのがショート サーキット評価なんだけど
とか言う玄人w
950: (アウアウウー Sa6b-5lnE) 2021/12/12(日)14:06 ID:a4cuZ/Mwa(1)調 AAS
vb恐ろしいな。そんなのバグの元じゃん
951: (ドコグロ MM9f-JVtf) 2021/12/12(日)15:11 ID:happ85M4M(1)調 AAS
はあ?

C# ⇔ VB.Net
---------------------
& ⇔ And
&& ⇔ AndAlso
| ⇔ Or
|| ⇔ OrElse

ってなってるだけやぞ
952
(2): (ワッチョイ a701-4A0X) 2021/12/13(月)09:12 ID:7pnzZ4JB0(1)調 AAS
>>937
条件式をネストしたり&でつないだりと複雑にするのは難読性が高くなるから分けたほうがいいだろ
どういう条件ならMthod()を呼ぶのか明確に

if(Input){
//事前処理
judge=(A==null) ? true: //Aがnullのとき
A.Bool==false ? true: //Aの子要素がfalseのとき
false; //それ以外
if(judge) Method();
//共通処理
...
}
953: (ワッチョイ 477c-Xngn) 2021/12/13(月)09:51 ID:g+jxvcxo0(1)調 AAS
>>952が分かりやすく見えない…
>>940が誰が見ても一目瞭然でいいと思うわ
シンプルな条件分岐なんだからこだわる必要ない
954
(1): (ワッチョイ df01-c3Ov) 2021/12/13(月)11:44 ID:zykNHKxZ0(1/2)調 AAS
skipするほうが例外的処理だろうからskip条件を明確にしてearly returnしたほうがいいと思う
論理式の細かい書き方よりも意図が伝わるかどうかのほうが大事

if (ShouldSkip(a)) {
return;
}
Method();

bool ShouldSkip(A a) {
return a?.Bool ?? false;
}
955
(2): (ワッチョイ bf62-Trcr) 2021/12/13(月)14:01 ID:z2L+bKXw0(1)調 AAS
メソッドにすんのはいいけど、>>937 が入力を検知したときメソッドを実行したいって言ってんだからその通りに書けばいい
設計書通りに条件分岐すりゃいいのに無駄に置き換えて実装する人多いけどなんなんだろうね

if(入力検知(input, A)){
Method();
}

bool 入力検知(bool input, A a){
return input && a != null && a.Bool;
}
956
(1): (アウアウウー Sa6b-p36F) 2021/12/13(月)14:22 ID:6wRfW5vFa(1/2)調 AAS
昼飯食いながら適当だから何か勘違いしてるかもしれないけど、>>937って要は
ある条件を満たした時だけMethodを実行したい、それだけでしょ?

だったら四の五の言わずに素直にそう書くのが一番じゃないの。
if( input && (!A?.Bool ?? false)) Method();
957: (アウアウウー Sa6b-5lnE) 2021/12/13(月)14:29 ID:KmNdaGVTa(1/2)調 AAS
求めてるのは「もっとスマートな書き方」だからな
主観的な問題だから、俺らが言えるのは「こういう書き方もある」ってのだけ
正解(どれが一番か)を決めれるのは本人だけ
958: (アウアウウー Sa6b-p36F) 2021/12/13(月)14:47 ID:6wRfW5vFa(2/2)調 AAS
コードでも文章でも読み手に「要するにそれってどういうこと?」って思わせないのが一番。
これもコードでも文章でもそうだけど、読みにくいものは書いた本人がそこをよく理解せずに書いている。
959: (ワッチョイ 87ad-jwmr) 2021/12/13(月)15:06 ID:WUjUV8JM0(1)調 AAS
ReSharperが薦めるように書き換えたら、何をしてるのかわからなくなった。
960
(1): (ブーイモ MM8b-+2Rn) 2021/12/13(月)15:10 ID:pxTkbBAYM(1)調 AAS
最近のc#はマルチパラダイムで構文が増えてカオスだ
961: (ワッチョイ df01-c3Ov) 2021/12/13(月)16:35 ID:zykNHKxZ0(2/2)調 AAS
>>955,956
>>937を読む限りでは入力を検知する処理と
検知した後に特定の処理をスキップするかどうかを判断する処理は別じゃないのかな?

「A.Boolがtrueなら入力を検知しない(or 入力を無視する)」ってことなら
入力よりも先にA.Boolを確認するよね
962: (アウアウウー Sa6b-5lnE) 2021/12/13(月)16:52 ID:KmNdaGVTa(2/2)調 AAS
ちなみに回答ざっと見てこんなだな
こういうのはコードが長くなっても動作が分かりやすい方がいいと思う

>>939,940,952
おk

>>954,955
バグあり
963
(1): (ワッチョイ 7f33-1tZa) 2021/12/13(月)22:23 ID:s0FccnDO0(1)調 AAS
>>960
それ。言語の表現力が豊かでも、自分やチームで一貫性を担保するのが面倒ξ
964: (ブーイモ MM8f-+2Rn) 2021/12/14(火)09:16 ID:cLXTODpXM(1)調 AAS
>>963
そして、コーディング規約が底辺プログラマーに合わせられて生産性が低下する
965: (ワッチョイ 67b0-zDwW) 2021/12/14(火)20:46 ID:4rMew3mV0(1)調 AAS
どうせ好き勝手に言語機能使って上がる生産性なんて微々たるもん
966
(1): (ワッチョイ c778-xLgN) 2021/12/14(火)23:18 ID:gu+YKYdX0(1)調 AAS
.net の 1.1 で書くとめちゃくちゃ不便で絶望するぞ
967: (ワッチョイ a787-3oVZ) 2021/12/14(火)23:43 ID:5qKKFixV0(1)調 AAS
linqがある.NET Framework3.5ですら今これでやれって言われたら不便に感じるしなぁ
使えるものは使わせてもらった方が全然楽だわ
968: (ワッチョイ 67b0-zDwW) 2021/12/15(水)08:20 ID:YtxEX99t0(1)調 AAS
色々使えた方が個人的に楽だと思うのは否定しないが、もっともらしく「生産性が上がる」とか言っちゃうと
意外とそうでもなかったり。
969: (ワッチョイ df42-8/hI) 2021/12/15(水)09:41 ID:flSodCtX0(1)調 AAS
>>966
特にList<T>が無いのはキツイわ
970
(1): (ワッチョイ e701-zKou) 2021/12/15(水)12:10 ID:KtX6zlRp0(1)調 AAS
心配しなくても今どき1.1で書いたり書かされたりすることはないでしょ
971: (ワッチョイ a790-wtFG) 2021/12/15(水)16:03 ID:w2vh5jVl0(1)調 AAS
1.1とか極端すぎるやろ
972: (ブーイモ MM8f-+2Rn) 2021/12/15(水)16:14 ID:Jy+USlABM(1)調 AAS
2.0の知識で止まってるヤツも多いよね
973
(1): (ワッチョイ 7f33-1bVk) 2021/12/15(水)16:57 ID:RMHVQ2YW0(1)調 AAS
さすがに今どきvar使うなとかLINQ使うなとか言われないよね?
974
(1): (ワッチョイ 67e3-xLgN) 2021/12/15(水)17:25 ID:ik5KT4gs0(1)調 AAS
>>973
var使うとわからなくなるというのは名称が明示的になってないだけだと思うわ
975: (ブーイモ MM8f-+2Rn) 2021/12/15(水)17:31 ID:KBNxuXv0M(1)調 AAS
>>974
ハンガリアン記法?
976: (ワッチョイ a701-hqAP) 2021/12/15(水)18:19 ID:UGnWEqDI0(1)調 AAS
MS公式はvar推奨してるけどさすがにintとかstringとか基本的な型はvarにはしないな
977: (ワッチョイ 87da-YqIs) 2021/12/15(水)21:30 ID:lA94GyTo0(1)調 AAS
明示的に型を書かないとダメなところ以外全部varで書くよ
978: (ワッチョイ bfda-0QWB) 2021/12/15(水)21:44 ID:M2QFYQSl0(1)調 AAS
最近はnew()で書けるようになったから、極力varはやめてる
Hoge hoge = new();

実装当初の想定通りlinqの戻りくらいかなvar、使うの。
979
(1): (ワッチョイ df5b-xLgN) 2021/12/15(水)23:22 ID:l+MEhncN0(1)調 AAS
new()使えるのってc#いくつからだっけ
980: (ワッチョイ 7fbb-Nxno) 2021/12/15(水)23:43 ID:NZjG441V0(1)調 AAS
はやくおれのレベルまで上がって来い
上で待ってるぞ
981: (ワッチョイ a787-3oVZ) 2021/12/16(木)00:21 ID:R2Peltay0(1)調 AAS
new()で書けるようになったけど、コンストラクタで初期設定値渡すようにしちゃうから全然使わんなぁ。
セッター潰してコンストラクタで設定するのが好き
982: (ワッチョイ df01-JVtf) 2021/12/16(木)07:48 ID:Ymr34XoE0(1)調 AAS
>>979
C# 9.0
983
(1): (ワッチョイ df10-4iyA) 2021/12/16(木)09:44 ID:P4pOcLuS0(1)調 AAS
C#がどんどんボクのしらないものになっていってる
いっそC##やDと名乗っていただきたい
(Dは既にある、は受け付けない)
984: (ワッチョイ a701-4A0X) 2021/12/16(木)10:15 ID:80W3ywqF0(1)調 AAS
C#に毛が生えた程度だろ
C丼でええがな
985: (ブーイモ MMff-gtpG) 2021/12/16(木)10:54 ID:Ni3FtdydM(1)調 AAS
c井
986: (ワッチョイ 7f63-N/e5) 2021/12/16(木)11:01 ID:DM4zUQcN0(1)調 AAS
C⛩
987: (ワッチョイ 87ad-jwmr) 2021/12/16(木)11:42 ID:plhBUTFD0(1)調 AAS
C升
988: (ブーイモ MM8f-+2Rn) 2021/12/16(木)11:47 ID:e2PzMi3oM(1)調 AAS
>>983
ほんと、氷川きよしくらい変わってしまった
989
(2): (ワッチョイ 7f33-1tZa) 2021/12/16(木)23:46 ID:vtDDQtO+0(1)調 AAS
if(item is {} a){
...
}
null判定でこんな書き方あるんだな。Resharperさんに提案されて初めて知ったわ。
個人的にはあまり使いたくないけど。
990: (ワッチョイ 7b24-8o0J) 2021/12/17(金)00:40 ID:fAwtu2PR0(1)調 AAS
>>989
それやるとaの色がローカル変数色にならず白のままになるのが不満なんだけど俺の環境だけか?
991: (ワッチョイ 535f-3/1D) 2021/12/17(金)02:39 ID:KpFo6Hw/0(1/2)調 AAS
C林
992: (ワッチョイ ca2c-TeJl) 2021/12/17(金)11:21 ID:b89m5ifd0(1)調 AAS
>>989
C#9なら
if (item is not null)
って実に直感的に書けるから早くこっちにこいよ…

ところでその式でaで受ける意味なくね?
993: (ワッチョイ 535f-3/1D) 2021/12/17(金)13:42 ID:KpFo6Hw/0(2/2)調 AAS
C極
994: (ワッチョイ ff6e-n/si) 2021/12/19(日)09:44 ID:QHfeHH9E0(1/2)調 AAS
WinFormsを独学でやっているのですが教えて下さい
そこそこの規模のソフトは作れるようになってますが
VSで開発していくうえで、フォルダ構成ってどう考えればいいですかね
いままではDB関連をDBフォルダ
フォームはFormにまとめてさらにその中に機能別にフォルダを
細かいクラスファイルはClassというフォルダに
DBとの受け渡し(sql書いてFormとの受け渡しModelみたいなもの?)は
Modelというフォルダにまとめています

プロの皆様はチームで作っていかれる際に
会社によりけりかもしれませんが一般的なフォルダ構成の考え方ってあるんでしょうか
995
(1): (ワッチョイ 5f78-kSWT) 2021/12/19(日)09:58 ID:eMi6YEPC0(1)調 AAS
そんなもの存在しないから適当でいいよ
まぁあえて口出しするならFormフォルダはFormクラスと名前が被るからやめとけって位かな
996
(1): (アウアウウー Sa9f-f5lq) 2021/12/19(日)10:00 ID:n0pWJPWXa(1/2)調 AAS
なんのフォルダなのか理解できない
プロジェクト(visual studio上でのプロジェクト)内じゃフォルダ切ることはないな
プロジェクトがある程度大きくなったらクラスライブラリに分ける
997: (ワッチョイ aa89-YeYq) 2021/12/19(日)10:16 ID:UEQjoSys0(1/2)調 AAS
シングルアセンブリ構造なのかな
998
(1): (ワッチョイ ff6e-n/si) 2021/12/19(日)10:33 ID:QHfeHH9E0(2/2)調 AAS
>>995
そうなんですね、気をつけます

>>996
たとえば画面数でも100超えて、機能部分のClassファイルも100越えてくると
いちいち該当ファイル探すのが面倒でフォルダに分けたって感じです
前はPHPのフレームワークとか触ったときは
たとえばcontroller model viewとフォルダも階層構造みたいになっていて
そういう感覚もあります
チームでやられていると、どこに何のファイルが散らばっているか
わからなくなったりしないのですか? きちんと仕様書があるから関係ないのですかね

やっぱりクラスライブラリ(DLL化?)もちゃんと理解しないと駄目ですよね
一人で作ってるので、DLL化するほうが手間な気がして避けてました
999: (アウアウウー Sa9f-f5lq) 2021/12/19(日)10:44 ID:n0pWJPWXa(2/2)調 AAS
どこに何がは命名の問題もあるんじゃないかな
classも変数も先頭、末尾にそれが何か分かるように名前つけてるから名前順にソートされてればすぐわかる
1000: (ワッチョイ aa89-YeYq) 2021/12/19(日)10:53 ID:UEQjoSys0(2/2)調 AAS
>>998
機能ごとにProjectを作るんだよ。
1001
(1): 1001 ID:Thread(1/2)調 AAS
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1004日 15時間 55分 34秒
1002
(1): 1002 ID:Thread(2/2)調 AAS
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。

───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.284s*