-
プログラム
-
ふらっと C#,C♯,C#(初心者用) Part161
-
UPLIFTで広告なしで体験しましょう!快適な閲覧ライフをお約束します!
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を3行冒頭に書くこと(1行分は消えて表示されない為、もう1行は予備)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください。見かけたらNGしましょう。相手してしまったらあなたも荒らしです
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part160
https://mevius.5ch.n...cgi/tech/1707610640/
■関連スレ
C#, C♯, C#相談室 Part97
https://mevius.5ch.n...cgi/tech/1671585518/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
初心者はまずVisual Studioを使いましょう。なおVisual Studioの使い方などに関しては各バージョンで違うので専用スレでお願いします
http://www.visualstudio.com/downloads/
■情報源
https://learn.micros...dard/class-libraries
https://learn.micros.../language-reference/
https://learn.micros...dard/class-libraries
https://referencesource.microsoft.com/
https://source.dot.net/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit...otnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
++C++; // 未確認飛行 C
https://ufcpp.net/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured - コメントを投稿する
-
てすてす
-
フォルダをまるごとコピーして再利用しようとするとだいたい失敗する
新しいプロジェクトを作って一つずつコードをコピペするしかない -
丸ごとコピーした後に、csprojをテキストエディタで書き換えとかWinMergeでマージとか普通にやるけど?
-
>csprojをテキストエディタで書き換え
プログラマならスクリプトで是非 -
ソリューションエクスプローラから登録してけよw
-
ver違い作る時コピーするだけで何もトラブったことがない
-
プロジェクトを丸コピーで失敗するって、UUID の変更を忘れてる場合じゃないの。
同じソリューションの下に同じ ID を持ったプロジェクトがあるといろいろと不都合があった気がする。
ソリューションとかプロジェクト名を変える目的で丸コピー後にテキストエディタで修正はわりとよくやるな。 -
git使おうよ…
-
ファイル単位で摘むことはあるが
丸ごとコピって再利用したことない -
クラスの再利用とかしないの?
-
普通クラス単位=ファイル単位だと思うが
フォルダ丸ごとってのが、どのぐらいの範囲で言ってるのかわからんが
ソリューションやプロジェクトファイルごとってんならそりゃ修正必要にきまってる -
クラスの再利用にプロジェクトフォルダの丸コピーは要らんしな
-
クラスの再利用にプロジェクトフォルダの丸コピーは要らんのですか?
-
俺氏Equalsのオーバーライドに挫折し同値比較メソッドを別途実装する
GetHashCodeとかもうわけ分からん
下手に触らんのが一番いい気がしてきた -
ラムダ式をデリゲートに代入する事無く、即値のまま関数として呼び出すにはどう書けば良いのでしょうか?
サンプルの1~2行目のように一旦デリゲートに代入してから関数呼び出しするのでなく、3行目のような雰囲気で直接関数として呼び出したいのです。
Func<double, double> func = x => Math.Sin(x);
double ret1 = func(2 * 3.14 * 0.5 * 0.5 * 1.73 * 1.73);
double ret2 = (x => Math.Sin(x))(2 * 3.14 * 0.5 * 0.5 * 1.73 * 1.73);
これだけですとラムダ式・匿名メソッドを使う意味がないのですが、? : の三項条件演算子やswitch式などで選ばれたラムダ式・匿名メソッドを呼び出したい場面がありました。 -
半歩前進しました。デリーゲトへの代入式(の戻り値)を使用すれば呼び出せました。
Func<double, double> func;
double ret3 = (func = x => Math.Sin(x))(2 * 3.14 * 0.5 * 0.5 * 1.73 * 1.73);
ここからデリゲートを消せればシンプルに記述できそうです。 -
>>15
vs codeではなくvisual studioでコーディングしたらいいよ -
いくつか書き忘れました。
double型の戻り値を重視したように見えるサンプルですが、実際はvoid型で副作用を持つ関数呼び出しです。
また、複数の関数が並ぶ中で、同じ引数を何度も何度も書きたくない/コピーしたくないというのが動機の一つです。 -
ラムダ式はオブジェクトではない 式はオブジェクトではない
ラムダ式、メソッド自体はデリゲートに変換できるだけでオブジェクトそのものではないので他の言語のような使い方は出来ない
デリゲートに変換するとオブジェクトとして使えるだけ -
他の言語で言うファーストクラスオブジェクトではない
-
でもその場でキャストしてデリゲートにキャストしたら使えると言えば使える
((Func<int, int>)(x => x + 1))(5);
果たしてこれがシンプルで美しいと思うかどうか -
クラス再利用ならDLLにでもしとけ
-
>>22
キャストを使う事でデリゲート変数を排除できる事を確認しました。オブジェクトでないラムダ式をオブジェクト化?するところがキモなんですね。
美しさはともかくとして、文字数・タイプ数が減りシンプルになりました。
本当に助かりました。ありがとうございます。 -
多分間違ってたので訂正
ラムダ式自体はただの式の構文
でも内部的にはdelegeteのインスタンスでdelegeteとして扱われる
条件によっては推論が上手くいき何もせず変換できる場合もあるけどキャストで型指定しないといけない場合もある -
ソースコード上の変数を排除したところで、人間が見る変数が居ないだけでデリゲートオブジェクトが生成されてることに何も変わりはないし全くの無意味
-
FuncやActionの変数を用意して使った場合とキャストで直接使用した場合で
何が違うかって、変数宣言が無いのとIL状態でstlocとldlocが1回少ないだけ -
1回って1サイクル分の1やん
気にすることねーわ -
だからまぁそんな無意味な事やめとけってみんな言ってる
誤差だしコードが美しいわけでも無いし見辛いし無駄な拘り -
あれ?日付変更でID変わってない?
-
オプティマイズされたらまるっきり違うコードになってるから気にすんな
可読性にだけ気を遣え -
なんかできてるのに凝ろうとする人が多い
-
ちゃんと動いてるforループを何とかLINQに書き換えようとしてみたりとか
-
最近はCopilot にお願いしてコード書いてもらってる
これってどっちが速いん?とか問い合わせたり -
自分で描くのが一番速い
-
JSONデコードのサンプルがあるでしょ
定型の不毛な作業に自動化を使う
昔は正規表現
ちょっと前はAutoHotKeyマクロ
今はCopilot free
道具は賢く使う -
厳密にはC#じゃなくてフレームワーク側のことかもだけど、C#の勉強しててのことなので
Windows11に乗ってる.NET Frameworkに含まれてるEFって、バージョン何のEF? どこみたらわかる?
延々と進化してるものなので、ここはひとつ、OSに抱き合わせになってるバージョンを基準に勉強してみたいのです -
そのままgrokに聞いたらEFは入ってないって言われたぞ
-
一応、DLLはあるんだよ
> System.Data.Entity.dll
> System.Data.Entity.Design.dll
WUしたりはするものの、なにか追加インスコしたりとかはしてない
一応、System.Data.EntityClient.EntityCommandとか入ってるのが見える
そういや、オンゲの関係で、まだ22621で止めてるWin11だったけど
小出しですまんが、24H2でもそれは同じだと信じたい -
一番疑問なのは何をしたいのかがわからないところ
それらが入っていて追加インストールなしで何ができるのか? -
OSに載ってる分だけで、何ができて、何ができないのか勉強したい
もちろん、?.はないし、タプルも面倒だし、Span<T>はない
でも、ないから、何かわかった気がするんだ そういう勉強法が好きなんだよ
一切何もインストールできない縛りってのが時々ある そんなときにも役立つ
C#5を使い倒そうっていう酔狂が社内にいるとはだれも思ってないからねw -
バージョン何もなにも、.NET Frameworkのバージョンだろ
-
EFが何かわかってないんだな…
-
DLLがあるならそのファイルのバージョンみればわからんか?
-
ちなこんな感じです
> [assembly: AssemblyVersion("4.0.0.0")]
> [assembly: SatelliteContractVersion("4.0.0.0")]
> [assembly: AssemblyFileVersion("4.8.9032.0")]
> [assembly: AssemblyInformationalVersion("4.8.9032.0")]
> [assembly: ComCompatibleVersion(1, 0, 3300, 0)] -
おお、そんなところに書いてあった ぐぐっても辿り着きませんでした
DbContext ないんですね、(物足りなくなったら)nugetすればいいんですけど
atmarkit の ef4basic の記事読んで、まずはObjectContext で遊んでみます
いったん持ち帰ります ありがとうございました -
Dapper使ってる人いる?
便利でコーディング量減るんだけど遅い気がしないでもない…
そしてバグの元になりそうで怖いが大丈夫かな? -
Dapperより早くしたいのならDataReaderを生で使うしか無いな
-
やっぱりそうなりますよね
遅いの嫌いだからやはり生書きします -
CoPilot楽だな
先にコメントで何をしたいか書いたら
それっぽいコードを吐き出して来るw -
それっぽいだけではなぁ
-
書きたいコードのヒントにはなるから楽だぞ
-
むしろプログラム初心者には混乱の素だったりw
-
>>50
Dapperの方が早いぞ -
今って変数に日本語使えたんだね
始めて知った… -
多バイト文字は文字コードの関係で上手くいかないだろ
-
日本語入力モードに切り替える手間がね
-
ユニコード……
-
配列の添え字にlong型を使えるようにしてほしいけど、無理だろうな
-
webview2でYouTube表示するとライブのチャット欄表示されないのなんで?
↑今すぐ読める無料コミック大量配信中!↑