!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part154
https://mevius.5ch.net/test/read.cgi/tech/1644416019/
■関連スレ
C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries/
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries/
https://referencesource.microsoft.com/
https://source.dot.net/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
ふらっと C#,C♯,C#(初心者用) Part155
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ cfbb-bGSb)
2022/06/17(金) 08:42:12.88ID:CPX9Pfyj02デフォルトの名無しさん (ブーイモ MM7f-bhaQ)
2022/06/17(金) 09:44:05.95ID:6P0695t/M 前スレに引続き、VBに関して雑談しましょう
3デフォルトの名無しさん (スッププ Sd1f-TUn1)
2022/06/17(金) 10:01:22.33ID:Ech7goP3d4デフォルトの名無しさん (ワッチョイ 0fde-Gp1N)
2022/06/17(金) 10:05:30.78ID:0flDhQ0N0 VBはもうええは
5デフォルトの名無しさん (ワッチョイ cfbb-NoiI)
2022/06/17(金) 12:49:36.63ID:SEHo94h90 質問です。
VBとC#は同じって本当ですか?
VBとC#は同じって本当ですか?
6デフォルトの名無しさん (ブーイモ MM7f-LqX/)
2022/06/17(金) 13:28:19.51ID:A6HKqZSjM7デフォルトの名無しさん (アウアウウー Sa67-iSSN)
2022/06/17(金) 16:21:06.76ID:G79h5Zera ここまでCLRなし
8デフォルトの名無しさん (ワッチョイ 236e-fUg7)
2022/06/18(土) 17:42:22.61ID:5N4YYnEs0 立て乙
非同期なのにawait/asyncどころかtaskやaction/funcも全く使っていないC#2.0時代みたいな書き方してる今の現場から逃げたい……
非同期なのにawait/asyncどころかtaskやaction/funcも全く使っていないC#2.0時代みたいな書き方してる今の現場から逃げたい……
9デフォルトの名無しさん (ワッチョイ cebb-KZIJ)
2022/06/18(土) 18:06:31.65ID:FHXg/LAj0 お前が現場を変えんだよ
10デフォルトの名無しさん (ワッチョイ 5b79-LlJt)
2022/06/18(土) 19:19:21.37ID:uW38nGwr0 時間管理のできてない安易な非同期はほぼ100%バグってるのでやらなくていい
11デフォルトの名無しさん (オイコラミネオ MM63-2kmA)
2022/06/18(土) 21:39:25.08ID:DZ8znIamM レガシーな非同期はラップしてTaskかObservableにすると気分が晴れやかになる
12デフォルトの名無しさん (ワッチョイ dbe3-VVUE)
2022/06/18(土) 22:03:02.01ID:V1FXcKIO0 Taskは遅いとかいう記事のせいで未だにCallbackが主流の俺社の悪口はやめて
13デフォルトの名無しさん (ワッチョイ 236e-fUg7)
2022/06/18(土) 22:21:46.90ID:5N4YYnEs0 それそれ
そもそもcallbackの書き方なんて最近の本に全く載ってないから今の現場に入ってIAsyncResult?なんじゃそりゃってなった
10年は前に作られただろうサイトを読んで長い時間かけてようやく何やってるか理解したみたいな
そもそもcallbackの書き方なんて最近の本に全く載ってないから今の現場に入ってIAsyncResult?なんじゃそりゃってなった
10年は前に作られただろうサイトを読んで長い時間かけてようやく何やってるか理解したみたいな
14デフォルトの名無しさん (ワッチョイ 1aad-Zgr3)
2022/06/19(日) 18:15:11.59ID:JN11Elx30 >>8
書き換えればええやん
書き換えればええやん
15デフォルトの名無しさん (テテンテンテン MMb6-7TEv)
2022/06/21(火) 10:13:10.23ID:Anf2PF0ZM 予算は?
16デフォルトの名無しさん (ワッチョイ db63-PIvG)
2022/06/21(火) 11:32:11.12ID:xt+HQD+A0 いま少し時間と予算をいただければ…
17デフォルトの名無しさん (ワッチョイ 1aad-Zgr3)
2022/06/22(水) 06:57:18.35ID:10PSZ3s70 >>15
稟議通せば?
稟議通せば?
18デフォルトの名無しさん (ワッチョイ 0e33-bS77)
2022/06/22(水) 07:24:29.42ID:aadzgmkj0 この表の部分Excelと同じ操作にしてくれる?
19デフォルトの名無しさん (ワッチョイ 0eda-G5eL)
2022/06/22(水) 08:29:37.02ID:ITHh+IXJ0 ピコーン OLE2で埋め込めば良いじゃん
20デフォルトの名無しさん (ワッチョイ 7610-Icr6)
2022/06/22(水) 09:11:42.38ID:pCRUTkSs0 ArrayListを使ってる.NET1.0時代な職場よりマシなのでは
21デフォルトの名無しさん (ササクッテロラ Sp3b-RW72)
2022/06/22(水) 10:02:21.11ID:KXMvDxejp ようやく文法の教科書終わったくらいの素人なんですがinterfaceの具体的な使い方はどうやって覚えたらいいですかね
interfaceを使った疎結合というのがいまいちイメージできなくて取っ掛かりが分からん
interfaceを使った疎結合というのがいまいちイメージできなくて取っ掛かりが分からん
22デフォルトの名無しさん (ワッチョイ 0b01-gg/4)
2022/06/22(水) 10:24:15.19ID:4lQZ5KlU0 DIコンテナで実装クラスの差し替えでもしてみたらどうでしょうか
ttps://qiita.com/okazuki/items/a0f2fb0a63ca88340ff6
ttps://qiita.com/okazuki/items/a0f2fb0a63ca88340ff6
23デフォルトの名無しさん (オッペケ Sr3b-MKW/)
2022/06/22(水) 10:30:38.32ID:PAt9l0gwr 例えば動物クラスで、哺乳類とか鳥類とかに派生していくけど、
飛ぶ能力は鳥類だけの特徴ではないから interface で実装するとか。
飛ぶ能力は鳥類だけの特徴ではないから interface で実装するとか。
24デフォルトの名無しさん (ワッチョイ 5fda-fNRM)
2022/06/22(水) 10:42:48.00ID:IP7+Sy+B0 どんなclassのオブジェクトでも引数で受け取れるメソッド作ってみろよ
但し受け取るオブジェクト内でHage()メソッドの実装は必須な
但し受け取るオブジェクト内でHage()メソッドの実装は必須な
25デフォルトの名無しさん (ワッチョイ b72f-WaTF)
2022/06/22(水) 11:22:39.46ID:A/muOnk30 文法だけみても、実際に使い方みないと必要性とか実感なんてわかないだろ
まあ用途なんていろんなライブラリ使ってみればそのうちわかるさ
まあ用途なんていろんなライブラリ使ってみればそのうちわかるさ
26デフォルトの名無しさん (ササクッテロラ Sp3b-RW72)
2022/06/22(水) 11:32:21.14ID:cmFMiTtgp >>24
すごい。設問で理解できた気がする。
つまり現存するのが少数の自前クラスだけならまだ全てのクラスを引数にするメソッドを作成できるが、将来に渡って作られるであろうあらゆるクラスを引数にした関数は普通は作れない
そこでinterfaceを使って引数を抽象化する事で、あらゆるクラスを引数に取る事を可能にする。しかもHoge()は確定実装なので相手が何であれHoge()を叩けるのは保証される。よって相手を限定しない疎結合になる。
ってことか?この認識であってます?
すごい。設問で理解できた気がする。
つまり現存するのが少数の自前クラスだけならまだ全てのクラスを引数にするメソッドを作成できるが、将来に渡って作られるであろうあらゆるクラスを引数にした関数は普通は作れない
そこでinterfaceを使って引数を抽象化する事で、あらゆるクラスを引数に取る事を可能にする。しかもHoge()は確定実装なので相手が何であれHoge()を叩けるのは保証される。よって相手を限定しない疎結合になる。
ってことか?この認識であってます?
27デフォルトの名無しさん (ワッチョイ a75f-cRYK)
2022/06/22(水) 11:37:00.61ID:SASaungr0 抽象化レイヤーの有用性を理解するにはテストコードを書くのが一番
まずはDIやるほどでもない小規模なプログラムで、HTTP通信とかファイルアクセスとかDBアクセスとかやってるところにinterface挟んで、
ユニットテストでは実際のアクセスを発生させずにテストできるようにしてみるといい
https://docs.microsoft.com/ja-jp/visualstudio/test/unit-test-basics?view=vs-2022
まずはDIやるほどでもない小規模なプログラムで、HTTP通信とかファイルアクセスとかDBアクセスとかやってるところにinterface挟んで、
ユニットテストでは実際のアクセスを発生させずにテストできるようにしてみるといい
https://docs.microsoft.com/ja-jp/visualstudio/test/unit-test-basics?view=vs-2022
28デフォルトの名無しさん (ササクッテロラ Sp3b-RW72)
2022/06/22(水) 11:46:24.28ID:cmFMiTtgp29デフォルトの名無しさん (ワッチョイ 3ea7-9kHe)
2022/06/22(水) 11:56:22.30ID:/fjoIry/0 >>26
外野だけど大体そんな感じ
ただ、「そのインターフェースを実装しているクラスに限る」けどね
だからといって闇雲に継承したりインターフェースを実装したりするのではなく、is-aの関係であるべき
「車」や「飛行機」は抽象化すると「乗り物
」となるけど、「家」は抽象化しても「乗り物」とはならないね(抽象化すると「建物」とかになるはず)
車、飛行機、家はそれぞれ通常クラスとして、
乗り物、建物はインターフェースとして定義する
そうすればどの乗り物だろうと同じ「前進」とかで動かせる
この抽象化して、どれでインスタンス化したか関係なく動かすためにinterfaceがある
外野だけど大体そんな感じ
ただ、「そのインターフェースを実装しているクラスに限る」けどね
だからといって闇雲に継承したりインターフェースを実装したりするのではなく、is-aの関係であるべき
「車」や「飛行機」は抽象化すると「乗り物
」となるけど、「家」は抽象化しても「乗り物」とはならないね(抽象化すると「建物」とかになるはず)
車、飛行機、家はそれぞれ通常クラスとして、
乗り物、建物はインターフェースとして定義する
そうすればどの乗り物だろうと同じ「前進」とかで動かせる
この抽象化して、どれでインスタンス化したか関係なく動かすためにinterfaceがある
30デフォルトの名無しさん (ワッチョイ cebb-h11B)
2022/06/22(水) 12:05:02.40ID:PETcyPz40 インターフェイスは、デザインパターンやユニットテストを多少でも知っていないと意味不明だろう
31デフォルトの名無しさん (オッペケ Sr3b-tycP)
2022/06/22(水) 12:38:55.59ID:+v1vNSu7r まあ書いてみたときに便利さを実感するわな
32デフォルトの名無しさん (ワッチョイ cebb-h11B)
2022/06/22(水) 12:56:59.75ID:PETcyPz40 どうだろね
数時間で完成する規模のものしか書かないのであれば、記述が増えて不便になったと思うかもしれないし・・・・
数時間で完成する規模のものしか書かないのであれば、記述が増えて不便になったと思うかもしれないし・・・・
33デフォルトの名無しさん (スッププ Sdba-oPsP)
2022/06/22(水) 13:00:52.20ID:1cdxoy9qd34デフォルトの名無しさん (アウアウウー Sa47-vQ73)
2022/06/22(水) 13:58:54.21ID:bIOoQPo7a JavaとJavaBeansのことか
35デフォルトの名無しさん (ワッチョイ 5fda-fNRM)
2022/06/22(水) 15:18:26.16ID:IP7+Sy+B036デフォルトの名無しさん (ワッチョイ 7610-Icr6)
2022/06/22(水) 15:19:46.32ID:pCRUTkSs0 普段意識しないだけで、インターフェースはいたるところにある
判りやすい例がforeachステートメント
あれはListではなくIEnumerableに対してループしている
判りやすい例がforeachステートメント
あれはListではなくIEnumerableに対してループしている
37デフォルトの名無しさん (スッププ Sdba-sDv4)
2022/06/22(水) 15:42:58.01ID:81K3MuoLd 車が家の場合は?
38デフォルトの名無しさん (ワッチョイ b72f-WaTF)
2022/06/22(水) 17:28:55.97ID:A/muOnk3039デフォルトの名無しさん (アウアウウー Sa47-bX4F)
2022/06/22(水) 17:54:44.92ID:FYBnfkKla >>20
石器時代の産物だなw
石器時代の産物だなw
40デフォルトの名無しさん (ワッチョイ 3b5f-sER5)
2022/06/22(水) 18:10:20.15ID:5Bb+Exnq0 初心者向けなら最初はテストのためって言ってしまっても問題ないと思う
初心者のときに俺が一番ピンときたのは、
ファイル作成や書き込みをテストしたくなったときに使った System.IO.Abstractions だな
ファイルシステム自体を抽象化(IFileSystem)することで
テストの度に実際のファイルをセットアップしなくてもいいことが分かった時は結構感動した
初心者のときに俺が一番ピンときたのは、
ファイル作成や書き込みをテストしたくなったときに使った System.IO.Abstractions だな
ファイルシステム自体を抽象化(IFileSystem)することで
テストの度に実際のファイルをセットアップしなくてもいいことが分かった時は結構感動した
41デフォルトの名無しさん (ワッチョイ 0b01-bS77)
2022/06/22(水) 19:03:12.67ID:+B9FnbDA0 private Random _random = new Random();
void MethodA(){
var val = _random.Next(1, 100);
}
void MethodB(){
var random = new Random();
var val = random.Next(1, 100);
}
MethodAとMethodBをそれぞれループで何度も実行したとき、Bの方が圧倒的に速いのはなぜですか?
Randomオブジェクトを都度生成しているので遅そうに思えるのですが。
void MethodA(){
var val = _random.Next(1, 100);
}
void MethodB(){
var random = new Random();
var val = random.Next(1, 100);
}
MethodAとMethodBをそれぞれループで何度も実行したとき、Bの方が圧倒的に速いのはなぜですか?
Randomオブジェクトを都度生成しているので遅そうに思えるのですが。
42デフォルトの名無しさん (ブーイモ MM67-oPsP)
2022/06/22(水) 19:22:48.61ID:EFlIvheoM >>41
計測に使ったコード見せて
計測に使ったコード見せて
43デフォルトの名無しさん (ワッチョイ 7610-Icr6)
2022/06/22(水) 19:58:57.85ID:pCRUTkSs0 RandomNumberGenerator.GetInt32の方がおすすめよ
ゲームみたいにシード値を固定にしたい場合はその限りではないけど
速度が欲しい場合はXorshiftもあるんでついでに比較するといい
ゲームみたいにシード値を固定にしたい場合はその限りではないけど
速度が欲しい場合はXorshiftもあるんでついでに比較するといい
44デフォルトの名無しさん (ワッチョイ a702-KtZt)
2022/06/22(水) 20:07:52.96ID:6/q1nl240 C++だと、メンバ変数をループでアクセスしたりすると遅くなるよ
C#も多分変わらんのでは
C#も多分変わらんのでは
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市早苗首相、人口減少問題で「地方は東京を見習って」発言に違和感 鳥取・平井知事、県議会で言及 [Hitzeschleier★]
- 【速報】 山上徹也被告が謝罪 「何の恨みもありません。非常に申し訳ないことをした」 [お断り★]
- 中国外務省「絶対に受け入れない」改めて撤回求める 台湾有事めぐる高市総理の「政府の立場に変更なし」との答弁に対し [ぐれ★]
- NVIDIA幹部「日本、もうロボット大国ではない」 AIで一変 ★2 [少考さん★]
- 『M-1』決勝進出9組発表 エバース、ヤーレンズ、ヨネダ2000、ママタルト、真空ジェシカら進出 [muffin★]
- 芸人・永野が断言 令和が「1」なら昭和は「100楽しかった」「夢いっぱいだった」★2 [muffin★]
- 【実況】博衣こよりのえちえちMIMESIS🏴‍☠🐏🎪🧪★4
- かなたそ🪽に握りつぶされるお🏡
- お前ら、『安倍昭恵』と付き合えるなら付き合う? [916950698]
- 高市早苗、人口減少問題で「地方は東京を見習って」 [935793931]
- 日本人、経済格差がどんどん拡大… 高所得者は牛肉の消費高く低所得はチキン [271912485]
- メモリー(DDR5)16GB×2枚が9万4780円😱 [175344491]
