C#, C♯, C#相談室 Part98 (392レス)
1-

1: (ワッチョイ 7f6a-B4f6) 2024/06/29(土)19:18 ID:NohAfdfx0(1) AAS
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512

■Visual Studio 2022 Community(無償の統合開発環境)等はこちら
外部リンク:www.visualstudio.com

■コードを貼る場合はこちら
外部リンク:ideone.com

■前スレ
C#, C♯, C#相談室 Part97
2chスレ:tech
省2
266: (ワッチョイ be10-Xxs2) 2024/12/21(土)18:15 ID:4NNdAFL10(2/2) AAS
いや知らんがw
俺がC#の話題にしろ言うたわけじゃないしw
267: (ワッチョイ 177d-N2O4) 2024/12/21(土)21:57 ID:i5j/m89y0(1) AAS
今関わってるプロジェクトがスペース2つでインデントしててちょっと面食らってしまったんだけどこれ珍しくないもの?
今まで携わってきた中で一件も遭遇したことなかった
268
(1): (ワッチョイ 6a6a-Pm71) 2024/12/21(土)22:11 ID:lUhayCnC0(1) AAS
過去に深いネストを大量生産する人がエラくなっちゃって、そういうルールになってしまったんじゃないかと妄想しちゃうなw
269: (ワッチョイ 8f5d-/DxF) 2024/12/21(土)23:25 ID:BdmznDtW0(2/2) AAS
今時スペース2個は珍しいな、C#とかではあんまりない気がする
昔々はどの言語でもタブを使っていいかとか、スペースで代用するなら2個か4個かで論争があったらしい
JSは2個が主流だった気がするけど今はどうだろ
270: (ワッチョイ a301-28Ti) 2024/12/21(土)23:39 ID:L6mtJxlH0(1) AAS
jsonは2だったり4だったりまちまちだけどね
271
(1): (ワッチョイ 5f95-EHcm) 2024/12/22(日)00:09 ID:tw4BvM7X0(1/3) AAS
タブのが合理的
Goみたいな標準フォーマッタがあるのが理想だけどC#はそう言う文化はないね
272: (ワッチョイ df79-0Q8V) 2024/12/22(日)02:26 ID:/fc7feyD0(1) AAS
俺はスペース2個のが視線移動減って楽だと感じてるからかなり昔から2個派だよ
>>268みたいな日本人特有の右倣えのお仕着せルールに甘んず昔から超効率化してるやつらは世の中に沢山いるんだよ
勉強になったな
273: (ワッチョイ 2b28-MhhP) 2024/12/22(日)03:54 ID:f4R4W69d0(1) AAS
TABに統一してるけど
表示上は半角スペース2から4個で用途で変えてる
274
(1): (スププ Sd03-+INx) 2024/12/22(日)05:02 ID:SvMpALOcd(1) AAS
{}は
if(){
}
の方が好き
普通は
if()
{
}
これ?
275
(1): (ワッチョイ 832b-8NiF) 2024/12/22(日)05:44 ID:96LlHbpn0(1/4) AAS
逆、最初の頃は上が大多数
ブログやら初心者講座やらで下の書き方が主流担ってきてる感じ
276
(1): (ワッチョイ b310-3P54) 2024/12/22(日)06:21 ID:I7bhR46i0(1/2) AAS
スペース2個インデントって言うと、XMLやHTMLを思い浮かべるな
277
(1): (ワッチョイ 957c-Th9R) 2024/12/22(日)07:48 ID:dFQQq0VB0(1/4) AAS
>>275
違うぞ
上のはJavaやJavaScript界隈でのデファクト

下はMicrosoft系のC#とかのデファクト

公式が出してるコーディング規約がそうなってるだけ
278: (ワッチョイ 957c-Th9R) 2024/12/22(日)07:50 ID:dFQQq0VB0(2/4) AAS
>>276
例えばC#というかasp.net系だとrazor構文でhtmlと一緒にC#のコード埋め込む
そうするとインデントは2の方が見やすい
279
(1): (ワッチョイ 957c-Th9R) 2024/12/22(日)07:53 ID:dFQQq0VB0(3/4) AAS
>>271
C#はチェーンメソッドのドットを縦に綺麗に並べる文化が有るんでタブだと都合が悪い
2でも4でも良いけどスペースがデファクト
280: (ワッチョイ 832b-8NiF) 2024/12/22(日)08:13 ID:96LlHbpn0(2/4) AAS
>>277
いやだから
C#が出る前というか出始めの頃で
Cプラプラ使い達が多かった時さ
281: (ワッチョイ 832b-8NiF) 2024/12/22(日)08:20 ID:96LlHbpn0(3/4) AAS
当時、というか関数書くときって
hoge(){
…}

て書くのが一般的やったん

んでDelphiが出てきたらこの{}をBegin…Endで囲むから
hoge()
Begin

End

ここらへんはVBやVBAとかにも反映されて
省1
282: (ワッチョイ 5f95-EHcm) 2024/12/22(日)09:15 ID:tw4BvM7X0(2/3) AAS
>>279
タブをインデントで使ってスペースをアライメントで使えば理論上ズレないよ
Goのフォーマッタはこれに従ってるからタブ幅は任意に設定できる

prettierみたいな途中で強制的に折り返すフォーマッタとは相性が悪いけど
283: (ワッチョイ 5f95-EHcm) 2024/12/22(日)09:22 ID:tw4BvM7X0(3/3) AAS
Indent with tabs, align with spaces

外部リンク:dmitryfrank.com

これね
これが理想だけどエンジニアのレベルが高くないとこのルールを守るのは難しいからスペースにしてるのが大半
ただしGoは強制フォーマッタでこれを解決してる

個人プロジェクトなら最初から好きなタブ幅にすればいいからタブにするメリットもあまりないし
気分でタブ幅変えれるのは結構メリットあるけどね
284: (ワッチョイ b310-3P54) 2024/12/22(日)09:27 ID:I7bhR46i0(2/2) AAS
俺はずっと>>274の前者でインデントはタブだなぁ
なおタブの幅はスペース4個分
285
(1): (ワッチョイ 7b8b-vY+B) 2024/12/22(日)11:59 ID:US35TJKc0(1/3) AAS
「自転車置き場の屋根の色」現象発生中
286: (スッップ Sdaf-3P54) 2024/12/22(日)13:03 ID:ci/BAnbad(1) AAS
この手の話は職場のルールで決まるから個人がどうこうは関係ないよな
ただ自分のツールなんかは好きにしろだが
カッコ、演算子、型と変数の宣言の間の空白などもめる話題はいくらでもある
287
(1): (ワッチョイ 195d-PrDn) 2024/12/22(日)16:36 ID:J7cuP3Nu0(1) AAS
>>285
「原子力発電所の建設」について議論したいなら付き合うよ、それで議題は?
288: (ワッチョイ 957c-Th9R) 2024/12/22(日)17:09 ID:dFQQq0VB0(4/4) AAS
まあreshaperでテーム共有設定使うだけだしな
289
(1): (ワッチョイ 7b8b-vY+B) 2024/12/22(日)19:48 ID:US35TJKc0(2/3) AAS
>>287
では失礼して
Unity製ゲームのMOD開発なんかでリフレクション使いまくるのもなんかスマートじゃないから、
aelij氏のIgnoresAccessChecksToGeneratorを魔改造させてもらってフィールド含めて全パブリック&readonly解除でゲームのコードに全アクセス出来るようになってめっちゃ捗るようになったのだけど、
欲が出て標準ライブラリにも手を出したくなってやってみたらmscorlibなんかはReferenceAssemblyだからプライベートフィールドはそもそもdll内に含まれてないから書き換えられないんだよね。
ランタイム時の実体dllを決め打って渡せばstring.m_firstCharとかList<T>._sizeとかも全てアクセスできるようにはなるんだけど決め打ち渡しもスマートじゃないからどうにか自動で解決をしたい。
ILSpyやmono.cecilにはランタイム時の実体dllを特定するコードあるんだけどbuildアクションから同じ事するのって可能だろうか?
290: (ワッチョイ e376-ZNoy) 2024/12/22(日)19:55 ID:zKZ5mRgv0(1) AAS
はい
291: (ワッチョイ 7b8b-vY+B) 2024/12/22(日)20:10 ID:US35TJKc0(3/3) AAS
へー
なんだかもうゲームよりMOD開発、MOD開発より開発環境開発の方が長くなっちゃってますわ
292: (ワッチョイ 832b-8NiF) 2024/12/22(日)20:35 ID:96LlHbpn0(4/4) AAS
だって、ここ
別にゲーム開発やないし

プログラムやで
293
(1): (ワントンキン MM33-MooF) 2024/12/22(日)20:50 ID:F7NwxYJ7M(1) AAS
いまだにmonoで簡単にいじられまくりゲームあるのか
294: (ワッチョイ 0364-PrDn) 2024/12/23(月)00:10 ID:XKMn6iMr0(1/2) AAS
>>289
日本語がややこしいけど
①標準ライブラリのPrivate含む全フィールドにリフレクションを使わずにアクセスして書き換えたりしたい
んで、
②実体DLLを決め打ちで渡せばアクセスできるってところまでできてる
あとは
③実体DLL取得を自動化したい
④なおかつビルドプロセスに組み込みたい
ってことか
MOD開発とか知らんけど面白そうじゃん
295
(1): (ワッチョイ 0364-PrDn) 2024/12/23(月)00:36 ID:XKMn6iMr0(2/2) AAS
いまいち細かい要件がよくわからんけどAppDomain.CurrentDomain.GetAssemblies()で現在ロードされているすべてのアセンブリが取得できるらしいが、これ試した?
駄目だったならどういうところがダメだったのか教えてくれ
296: (ワッチョイ 7b8b-vY+B) 2024/12/23(月)17:33 ID:HWay8A+S0(1/2) AAS
>>295
要するにIgnoresAccessChecksToGeneratorの話でMSBuild内のコードとして動くものだからそれやってもMSBuildがロードしてるものが返されるだけとなる
ILSpyなんかもtypeof(object)などから解決してるので上記の理屈でそのまま移植はできない
297: (ワッチョイ 7b8b-vY+B) 2024/12/23(月)17:42 ID:HWay8A+S0(2/2) AAS
>>293
マルチメインじゃなくmodフレンドリーなゲームならil2cpp化せずそのまま出してるゲームも普通に多いよ
改変やチート防止のためなら難読化含めてやったところでそこまで難易度上がらないからそれ目的ならRustみたいにカーネルドライバ付けるしかない
298: (ワッチョイ a374-PrDn) 2024/12/24(火)18:58 ID:9YLK2p020(1) AAS
個人開発の局所的な用途のマイナーツールの話が原発の建設並の重大事なのか
ちょっと難しすぎてわかんねえな
299: (ワッチョイ df79-0Q8V) 2024/12/24(火)19:41 ID:RgkKZ0Pj0(1) AAS
原発ってただの湯沸かし器じゃん
燃料がちょっとヤバイってだけで高尚なC#のプログラムと比較すんなよ
300: (スッップ Sdaf-3P54) 2024/12/25(水)08:00 ID:vP0zyznod(1) AAS
C#だってただの道具
しかもC#だけじゃお湯も沸かせない
高尚とかちゃんちゃらおかしい
301: (ワッチョイ 57ef-FEgH) 2024/12/25(水)08:26 ID:ML8x6ihA0(1) AAS
ツールは手段であって目的はアクセシビリティバイパスだから言語レベルのスケールの話な
実際これ求めてる人は少なくないからUnsafeAccessorが実装された訳で
てかリフレクションの方が文字列で指定してる分よっぽど危険だと思うんだけどな
302: (ワッチョイ df79-0Q8V) 2024/12/25(水)21:07 ID:G9TljzDw0(1) AAS
エロがビデオを進化させてきようにチートがソフトウェアを進化させるんだよ
湯沸かししかできない原発野郎は難しいなら黙ってろ
303: (ワッチョイ 5761-PrDn) 2024/12/25(水)21:35 ID:7oEpQVAc0(1) AAS
煽りたいだけのやつが居着いちゃってるのか、このスレ
304: (ワッチョイ b310-3P54) 2024/12/25(水)21:39 ID:WXVFxdaX0(1) AAS
いつものことだよあぼーんしときな
305: (ワッチョイ 832b-8NiF) 2024/12/25(水)21:44 ID:WWJbrOfz0(1) AAS
だぁ~から
ドーンおじはコテ付けろや
306: (ワッチョイ 3ec0-m72+) 01/01(水)16:01 ID:nGCOTvnw0(1/3) AAS
Enum.IsDefined(enumType, intValue)ってボックス化する?

AIに聞いたら最初は「ボックス化しない」とか言われたんだけど、第2引数がobject型として受け取ることを指摘したら「ボックス化するかもしれません」みたいな曖昧な返答されてよく分からなくなってきた
307: (ワッチョイ 9a8b-tkBd) 01/01(水)16:03 ID:zfs+VkVC0(1) AAS
object型ならするよ
.NETのバージョンにもよるけどgeneric版の方が型がコンパイル時解決されるからパフォーマンスは良い
308: (ワッチョイ 3ec0-m72+) 01/01(水)16:07 ID:nGCOTvnw0(2/3) AAS
だよね ありがとう
309: (ワッチョイ 3ec0-m72+) 01/01(水)16:23 ID:nGCOTvnw0(3/3) AAS
確かにジェネリクスでstruct制約付けたらボックス化回避できそう
ありがとう

public TEnum ConvertToEnum<TStruct, TEnum>(TStruct value)
where TStruct : struct
where TEnum : Enum
{
if (!Enum.IsDefined(typeof(TEnum), value))
throw new ArgumentException();

return Unsafe.As<TStruct, TEnum>(ref value);
}
310: (ワッチョイ 63eb-UqtM) 01/01(水)22:57 ID:tBHA6FMH0(1) AAS
JetbrainsやILSpyでIL見てboxあるかどうかみればいいんじゃね
311: (ワッチョイ 9a8b-IJXt) 01/31(金)11:32 ID:jXb+sjQI0(1/4) AAS
ハック的なことなんだけどインスタンスのオブジェクトヘッダに埋め込まれるクラスハンドルへのポインタ?をインスタンス無しで得る方法って無いかな
typeof(MyClass)ってすると正にそのポインタが「mov rcx, 7FFB716DE758 -> call clrのtype取得関数」って感じのアセンブラが生成される訳だけど、その7FFB716DE758を得たいんだよね
インスタンスがあればUnsafeライブラリ用いて簡単に得られるのだけど
312: (ワッチョイ 9a8b-IJXt) 01/31(金)11:34 ID:jXb+sjQI0(2/4) AAS
文章修正してたら日本語おかしくなったけどもし知ってる方いたらヒントでも何でも教えていただきたい
313
(1): (ワッチョイ 9714-natb) 01/31(金)12:00 ID:ejyfLYzx0(1) AAS
GetTypeで得られるものとは違うわけ?
314: (ワッチョイ 9a8b-IJXt) 01/31(金)12:51 ID:jXb+sjQI0(3/4) AAS
>>313
GetTypeやtypeofで得られるものはあくまでもType型のマネージドインスタンスだから全く違う
だけど逆アセをするとtypeof()時には即値でハンドルへのポインタ?がアセンブラコードとして埋め込まれてるので内部的にはめちゃくちゃ簡単に得る方法があるはずなんだよね
315: (ワッチョイ 9a8b-IJXt) 01/31(金)14:52 ID:jXb+sjQI0(4/4) AAS
一応自己解決だけどGetTypeやtypeofで得られたTypeインスタンスから「type.TypeHandle.Value」で希望のものは得られた
本来即値で得られるはずなのに冗長でもやもやはするが
316: (ワッチョイ 1a9d-natb) 01/31(金)15:09 ID:gpRv5mHv0(1) AAS
ChatGPTに聞いたら同じ答えが返ってきたけどRuntimeTypeHandle.Valueは環境によってメソッドテーブルへのポインタじゃなくEETypeへのポインタや実装依存のメタデータへのポインタになる場合もあるから自分で確認しろよとのこと
317: (ワッチョイ 4e10-EVp+) 02/01(土)06:49 ID:LNgv56j/0(1/3) AAS
そらJITなんだから・・・
318: (ワッチョイ 1a9d-natb) 02/01(土)10:13 ID:m26c//aC0(1/2) AAS
いやJITは関係ないぞ
319: (ワッチョイ 9a8b-IJXt) 02/01(土)11:06 ID:dQW8A9nv0(1/3) AAS
JITだろうが何だろうがconst intなんかは即値で埋め込まれるしね
だからクラス名.TypeHandleValueみたいなconst持っててくれたら嬉しいんだけど需要ほぼゼロすぎるか
320: (ワッチョイ 1a9d-natb) 02/01(土)12:12 ID:m26c//aC0(2/2) AAS
ん?即値で得られない理由の話だったか
そっちならJIT関係あるわな
321
(1): (ワッチョイ 9a8b-IJXt) 02/01(土)12:17 ID:dQW8A9nv0(2/3) AAS
いや関係ないよ
なぜなら逆アセすれば分かるけど思いっきりレジスタ長以下のconst同様の挙動を見せてるからね
typeof時にね
322: (ワッチョイ 17d7-EVp+) 02/01(土)12:48 ID:MtSj47O+0(1) AAS
逆アセw
323
(1): (ワッチョイ 4e10-EVp+) 02/01(土)12:53 ID:LNgv56j/0(2/3) AAS
アドレスとかプロセス起動のたびに変わることは無いんだっけ?
324: (ワッチョイ 9a8b-IJXt) 02/01(土)12:59 ID:dQW8A9nv0(3/3) AAS
>>323
.NETの場合は当然変わるしネイティブでも設定次第では変わり得る
でもそもそもC#やJavaは実行時にその都度機械語を組み立てて行く訳だから、であればその都度埋め込めばいいだけの話
325: (ワッチョイ 4e10-EVp+) 02/01(土)13:11 ID:LNgv56j/0(3/3) AAS
なら結局、ユーザークラスじゃ都度変わりうるってことじゃ?
326: (ワッチョイ a36b-natb) 02/01(土)15:14 ID:XDtywhx90(1) AAS
>>321
それはJITやAOT後のものを見てるからでしょ
JIT/AOT時に異なる相対アドレスに配置できる余地を残すためにC#/ILの段階では固定しない
327: (ワッチョイ 3f79-sZTl) 02/02(日)01:00 ID:U03i5Xdj0(1) AAS
ILの段階で定数になるなら決め撃ちで問題ないだろ
328: (ワッチョイ 7f10-cJwu) 02/02(日)06:57 ID:VLFyjNJe0(1) AAS
ユーザークラスがILの段階で決め打ちになるわけないだろ
329: (ワッチョイ 3f8b-YkUZ) 02/02(日)10:55 ID:NGhOMzti0(1/2) AAS
ユーザークラスだろうが何だろうが別に関係ないし
IL段階で定数になる必要もなくて事実として実行時に機械語になるタイミングで定数化されるんだよ
プログラマがその定数にアクセスする手段がないだけで
330: (ワッチョイ 0fd7-cJwu) 02/02(日)11:18 ID:RNSPFW0b0(1) AAS
実行時にならんと決まらんものは定数じゃねぇ
331: (ワッチョイ 3f8b-YkUZ) 02/02(日)12:43 ID:NGhOMzti0(2/2) AAS
定数ってか再三言ってるけど即値だな
332: (ベーイモ MM8f-VqRJ) 02/03(月)22:15 ID:EtXs2rHFM(1) AAS
インスタンスの型の厳密なチェック typeof (X) == x.GetType() やジェネリック型のチェック typeof (T) == typeof (X) はJITで最適化されるから、
質問者のケースがもしこれらに該当するなら変なハックは必要ない
333: (ワッチョイ 5f90-YkUp) 04/14(月)17:39 ID:XKwEHxpo0(1) AAS
Task<T>を返す非同期メソッドをUIスレッドで呼び出して結果を取得したいのですがどうすればいいのでしょうか?
ConfigureAwait(false)の後やTask.Runでスレッドプール上?で実行されてる
コード内からメソッドをUIスレッドで呼んで結果を取得したいのです
334: (ワッチョイ bfbc-6F/1) 04/16(水)05:53 ID:HaWtxdw70(1/3) AAS
AA省
335: (ワッチョイ bfbc-6F/1) 04/16(水)05:58 ID:HaWtxdw70(2/3) AAS
あ、TaskCreationOptionsのTaskが抜けてる…
async Task SetTextAsync()の代わりにasync Task<string> GetTextAsync()だったら
StartNew<Task<string>>にしてvar text = await task.Resultすればいい
336: (ワッチョイ 5f90-YkUp) 04/16(水)07:31 ID:QZV5gxIh0(1/2) AAS
ああ、ありがとうごいます
それっぽいです
要はスレッドプールなどで実行されてるメソッドから
途中でダイアログなどを出してユーザのアクションの結果で更に処理を
進めるかキャンセルするかを決定したかったにです

同期コンテキストは調べたのですがこのPostなんたらじゃできないなと..
TaskSchedulerの方から攻めるのですね

ありがとうございます
337: (ワッチョイ 5f90-YkUp) 04/16(水)07:41 ID:QZV5gxIh0(2/2) AAS
ボタンなど押して非同期メソッドを呼び出す
この時、非同期メソッドには介入が必要な時に呼び出される非同期コールバックを渡せるようにする

呼び出し側で、非同期コールバックとして
ダイアログなどをだしたりする
ダイアログの表示などはUIスレッド実行したかった

こんな感じでした
338: (ワッチョイ 27d7-kxmC) 04/16(水)15:31 ID:yzNZC+ym0(1/3) AAS
BOOL TestFunc(DWORD dwType, LPBYTE pBuffer, LPDWORD pcbBufSize);
dwType:欲しいデータのタイプコード
pBuffer:要求したデータを入れるバッファへのポインタ
pcbBufSize:pBufferが指すバッファのサイズ

例えば↑のような関数をエクスポートしてるアンマネージDLLがあって
DllImportする時のプロトタイプ宣言ってどう書いたらいいんでしょ?
339: (ワッチョイ 27d7-kxmC) 04/16(水)15:33 ID:yzNZC+ym0(2/3) AAS
LPDWORDはref uintでいいのかなと思うけど
LPBYTEとか、それこそLPVOIDだのハンドル系受け取る引数なんかはどう宣言したものかよく解らなくて
340
(1): (ワッチョイ bfbc-6F/1) 04/16(水)19:05 ID:HaWtxdw70(3/3) AAS
典型的にはこう
bool TestFunc(uint dwType, byte[] pBuffer, out uint pcbBufSize);
ref/outで宣言すると使いやすいけどNULLを渡せなくなるってのが問題になったりすることもある
ケースバイケースなので一概には言えない
ポインタが絡むなら誰がメモリ確保して誰がどうやって解放するのかを把握してないといけない場合もある
341: (オイコラミネオ MM0b-z3tz) 04/16(水)19:58 ID:VD2CYluqM(1) AAS
第三引数は普通はoutじゃないきがするけど
342: (ブーイモ MM8f-xKSY) 04/16(水)20:27 ID:qW3EbLcWM(1) AAS
outだと呼び出し元からバッファサイズを渡せないな
343: (ワッチョイ 7f10-z3tz) 04/16(水)20:47 ID:JiAmFx7+0(1) AAS
refじゃあかんの?
344: (ワッチョイ 27d7-kxmC) 04/16(水)20:48 ID:yzNZC+ym0(3/3) AAS
>>340
おぉ、ありがとう
ちょっとそれ元に弄ってみるます
345
(1): (ワッチョイ ed96-VXNn) 04/20(日)10:42 ID:T4EZ0xEH0(1/2) AAS
refとかout使うと機械語的にはゴミラッパーが生成される
ついでにboolも実はネイティブ型ではないので同様にゴミが生成される
多少可読性や安全性を犠牲にして良いなら
int TestFunc(uint dwType, byte* pBuffer, uint* pcbBufSize)とすればC/C++と遜色ない機械語になる
戻り値はintなので != 0としてbool判定をする手間がかかるけどね

ついでに.NETCore系統で且つ内部でIOなどを行わずに計算量が少なく割とすぐ戻る事が確定している場合は[DllImport("native.dll"), SuppressGCTransition]とすると尚良し
346: (ワッチョイ ed96-VXNn) 04/20(日)10:47 ID:T4EZ0xEH0(2/2) AAS
もしネイティブ側の戻り値がBOOLではなくboolならC#側はbyteにすればいい
boolって実は結構罠だからな
347
(1): (ワッチョイ 4954-EnZh) 04/21(月)11:37 ID:ed9AfVbw0(1) AAS
AA省
348: (ワッチョイ 6610-h0BB) 04/21(月)14:43 ID:AUqiwuPT0(1) AAS
何のためのVOIDポインタかで変わるしIntPtrで良いもんでもないわ
まぁなんだ、CharGPTなんて言うアホは黙っとけw
349: (ワッチョイ a6ce-i6bQ) 04/22(火)19:34 ID:rMo0RJWh0(1) AAS
Copilot「僕の出番ですね!」
350: (ワッチョイ 79d7-vVAN) 04/23(水)08:49 ID:eLYGqJZZ0(1) AAS
去ね
351: (スフッ Sd0a-NF34) 04/23(水)12:17 ID:snQ3Sxp8d(1) AAS
wchar : 「神は我を見放したのか」
352: (オイコラミネオ MM71-h0BB) 04/23(水)20:01 ID:WPvg2tW3M(1) AAS
>>347
ChatGPTはc#弱いな
353
(1): 警備員[Lv.1][新芽] (ワッチョイ a69e-kvZ8) 04/24(木)01:47 ID:MPcZRdS90(1) AAS
>>345
最近のC#はMIL(IL?)でなくマシン語を直接()生成するようになったのですか
354
(2): (ワッチョイ f978-fvra) 04/24(木)21:13 ID:985jarF60(1) AAS
>>353
最近は native AOT といってそういうことができる
リフレクションが使えないなど制限もあるけど

元のレス先の345は、たぶん native AOT とか関係なく、中間言語が生成するコードも指して機械語と言ってると思う
355: 警備員[Lv.3][新芽] (ワッチョイ 65eb-kvZ8) 04/24(木)21:27 ID:WNuC4TAo0(1) AAS
>>354
なるほど、ありがとうございました!!
356: (ワッチョイ ed96-VXNn) 04/25(金)11:23 ID:reKQm/Xa0(1) AAS
>>354
ILの話はしてない
nativeAOT及びJITが最終的に生成するアセンブラを指して言ってる
パフォーマンス目的でC/C++と連携しようとすると返ってパフォーマンス落ちる事も多いからな
機械生成のゴミラッパーが挟まると呼び出しコストがdll内部のルーチンより1万倍掛かるとかザラにあるし
357: (ワッチョイ 79d7-vVAN) 04/25(金)12:53 ID:RL99gkZ90(1) AAS
まぁ、アンマネージ呼び出しをパフォーマンス目的でやるもんじゃないしな
358: (ワッチョイ 3778-8SS3) 04/27(日)16:38 ID:jnYDAPp70(1) AAS
LibraryImport属性を使うとDllImport属性より最適化されたコードが出力されたりするの?
359
(1): (ワッチョイ 7761-tU9d) 05/03(土)12:39 ID:GwMmJ/YG0(1/2) AAS
オリジナルのDataGridViewの列を作りたいんですが、デザインビューのDataGridViewからオリジナルの列を追加する方法ってありますか?
360: (ワッチョイ d7d7-U1DS) 05/03(土)14:19 ID:ZbkD0HOB0(1) AAS
>>359
オーナードローしたいという事?
361: (オイコラミネオ MM5b-5rsl) 05/03(土)14:43 ID:rfaECn6+M(1) AAS
列A 列Bがあって 列C作ってA+Bを表示したいと言うことでは?
362: (ワッチョイ 7761-tU9d) 05/03(土)15:51 ID:GwMmJ/YG0(2/2) AAS
DataGridViewColumnを派生させたオリジナルの列をフォームデザインビューから列に追加したいんです
363: (ワッチョイ 9f79-q4+Y) 05/03(土)16:55 ID:h9Jrb8E+0(1) AAS
lこの辺りを駆使してDataGridViewColumnクラスを作るとか
外部リンク[html]:dobon.net
364: (ワッチョイ 9f68-VDOd) 05/03(土)18:56 ID:Q4RX0Sa/0(1) AAS
スマホとPCの作業を効率化したい--「Copilot Vision」の便利な8つの活用例
2025-05-03 07:00
外部リンク:japan.zdnet.com

1 プログらまーまこれを改造してるので上記以外の状態でも使用できるようにしている

2 すでにプログラムがあるので1〜コードを作成する必要が無い

ボイス・トォ・スカルの本態が一般パソコンにまで来たのでつい買い捨てができるようになった
マネーロンダリング 談合 インサイダー などがはかどるといわれる
365: (ワッチョイ cf7e-Enlg) 05/05(月)08:51 ID:wERx/Nt90(1) AAS
“イリヤ神”がまたやった 動画生成AI「FramePack」が革命的なワケ
2025年05月05日 07時00分更新
外部リンク:ascii.jp
 4月17日に登場した動画生成AIプログラム「FramePack(フレームパック)」が世界的に衝撃を与えています。PCローカル環境で動画AIを動かすには、少なくともビデオメモリー(VRAM)が12GBあるビデオカードを搭載していないと難しいというのが常識でした。ところが、VRAM 6GBでも安定的に動作させられるため、一気に動画AIの裾野を広げそうです。開発したのは、画像生成AI分野で「ControlNet」や、使いやすいツール「Fooocus」などを開発してきたことで知られる、スタンフォード大学に在籍中のIllyasviel(イリヤスフィール、以下イリヤ)さん。既存の方法論にまったく違ったアプローチでブレイクスルーを引き起こす、“イリヤ神”のアプローチに再び注目が集まっています。
中略
 AI動画を作ってみたいけれども、スペックが足りないために諦めていたという人が次々に自前の環境で試すようになってきました。既にワンパッケージでインストールできる環境も整えられているため、スタートも簡単です。様々なファイルをダウンロードしてくるため、初期設定は2時間くらいは見ておく必要があるものの、圧倒的にハードルが下がりました。
366: (ワッチョイ cff0-Enlg) 05/07(水)15:21 ID:Nuqzm3Wk0(1) AAS
下記は全て2025年5月7日の記事

OpenAI、ChatGPTの6つのモデルの違いと適切なプロンプトを解説
外部リンク:news.mynavi.jp

Microsoftの新規のソースコードの約3割をAIが生成、Nadella氏が明かす
外部リンク:news.mynavi.jp

スコットランドの住民を悩ます謎の怪音「ヘブリディアン・ハム」の正体はいまだ不明
外部リンク[html]:karapaia.com
367: (ワッチョイ 63d7-JZTP) 05/07(水)16:08 ID:9Z9/upda0(1) AAS
余所でやれカス
368: (アウアウウー Sac3-7Zak) 05/08(木)10:26 ID:8ptxnmrna(1) AAS
余所でやれとあなたが言ったから
色んなスレにマルチされたので
5月7日はマルチ記念日
369: (ワッチョイ 7540-gmcI) 06/16(月)03:18 ID:BRbK5XdC0(1/2) AAS
IDisposableを実装したクラスのインスタンスがもし破棄されていたら再度生成するために、

if(instance.IsDisposed || instance == null){
instance = new MyClass();
}

という書き方してるんですが、(obj != null)の部分って意味ないんでしょうか?
370
(1): 369 (ワッチョイ 7540-gmcI) 06/16(月)03:32 ID:BRbK5XdC0(2/2) AAS
すみません。ChatGPTが下記の回答をくれました。

instance が null の場合、insntace.IsDiposed の評価時に NullReferenceException が発生してしまうので、

if(instance == null || instance.IsDisposed){
instance = new MyClass();
}

にしなければならない。

必要かどうか。
 設計上 instance が null になる可能性がある場合、null チェックは必要。
 絶対に null にならないように管理されている場合、null チェックは不要。
省2
371: (ワッチョイ ce01-zY++) 06/16(月)10:34 ID:Nk3UlLjY0(1) AAS
そもそも変数を使いまわそうとしているのが間違い
using等でスコープと連動させて管理すべき
372
(1): (ワッチョイ b6b8-Is3k) 06/16(月)12:34 ID:rtKSn8210(1/2) AAS
>>370
もうほんのちょいだけ突っ込んだ解説すると、||演算子は左から評価を行い、左がtrueになった時点で右は評価を行わない

ゆえに、nullが渡ってくる可能性がある場合には~というChatGPTの回答に繋がる
373: (ワッチョイ 8d1e-Q7Of) 06/16(月)14:51 ID:IaYLbsBg0(1) AAS
>>372
ショートサーキットの有無は全然関係ないだろ

ChatGPTのダメ回答にさらに間違ったダメ解説を付け足すなよ
374: (ワッチョイ 5e10-15C+) 06/16(月)17:32 ID:MOf8oPnJ0(1) AAS

375: (ワッチョイ 75d9-XPp7) 06/16(月)18:04 ID:wwT4Yc020(1/2) AAS
>(obj != null)の部分って意味ないんでしょうか?

(obj != null)の部分が見当たらない問題
376
(1): (ワッチョイ b6b8-Is3k) 06/16(月)19:27 ID:rtKSn8210(2/2) AAS
フェイルセーフで実装するコードに対して、全体見えないのに設計直せは草しか生えない。ChatGPTでもやらん暴挙
その上でなぜ左右逆だといけないのかの解説に対してショートサーキットの有無は関係ないとかガチで草
377: (オイコラミネオ MMdd-15C+) 06/16(月)19:46 ID:oIohr+2JM(1/2) AAS
その前にフェイルセーフなのかどうかすらわからないと思う
ここでしか初期化していないならフェイルセーフではない
378: (オイコラミネオ MMdd-15C+) 06/16(月)19:54 ID:oIohr+2JM(2/2) AAS
フェイルセーフ
例えば信号が壊れたときに赤になるようにしてあれば交差点に通常運転で突っ込む事故が起こらない
壊れるにしても事態を安全な方向に振ること

初期化忘れや破棄されたインスタンス等を初期化するのはフェイルセーフではない
379
(2): (ワッチョイ 75d9-Q7Of) 06/16(月)21:31 ID:wwT4Yc020(2/2) AAS
>>376
なぜ左右逆だといけないのかとショートサーキットの有無は関係ないんだけど指摘されてもマジでわかんないのか

ChatGPTの回答もう一度読んでみ?
あとはショートサーキット無しの|演算子にしたら問題がなくなるのかどうか考えてみ?
380: (ワッチョイ ad01-xkro) 06/16(月)22:33 ID:GWwonttx0(1/2) AAS
>>379
ああ言われて気づいた、説明間違ってたわ

最初のコードだと、左から判断を行うので、instance.IsDisposedを判定するときにinstanceがnullの場合にエラーが発生する
けど逆にするとinstance == nullではじくので、instance.IsDisposedは判定しなくなる
381
(1): (ワッチョイ ad01-xkro) 06/16(月)22:37 ID:GWwonttx0(2/2) AAS
はじくじゃねーや、また言葉間違ってる

最初のコードだと、左から判断を行うのでnstanceがnullの場合にinstance.IsDisposeでNullにアクセスしようとしてぬるぽが発生する
けど逆にするとinstanceがnullの場合は左の条件だけで生成に向かい、またinstanceがnullではない場合には誤ってDisposeされているかどうかで判断して再生成する
382: (ワッチョイ 9e64-ws5E) 06/17(火)03:09 ID:37ojnUDK0(1) AAS
今の世の中AIがあんのにまだこんな場末のド素人のホビープログラマーと知ったかの吹き溜まりにきよんのか理解に苦しむんやがwww
まぁAIの使い方すらわからん低脳チンパンやからこんなまともな回答が返ってこーへんスレで質問しとんのやろーなクソワロタ
383: (ワッチョイ 9e27-T1jw) 06/17(火)03:15 ID:TyHic1BD0(1) AAS
なるほどこれがチンパンジーか
384: (アウアウウー Sacd-xHx3) 06/17(火)19:36 ID:ItQB0Ii0a(1) AAS
答えもらうつもりで来とるやつなんかおらんやろ
385: (オイコラミネオ MMdd-Rgxs) 06/17(火)20:04 ID:lyLRSSY/M(1/2) AAS
>>381
あんたの言葉の方が、native 日本人にはおかしく聞こえる。
380 の説明は自然な日本語であり、論理的にも正確。
386: (オイコラミネオ MMdd-Rgxs) 06/17(火)20:06 ID:lyLRSSY/M(2/2) AAS
>>379
|| 演算子のショートサーキット評価 (短絡評価) は大いに関係ある。
387
(1): (ワッチョイ 5e10-15C+) 06/17(火)20:46 ID:QaggVUGV0(1) AAS
null判定を後に書いちゃうのはショートサーキット評価有無以前の問題だって話だろ
388: (オイコラミネオ MMc6-Rgxs) 06/17(火)22:02 ID:EAFPsc4EM(1) AAS
>>387
何言ってんだか。
389: (ワッチョイ 754e-x4hs) 06/17(火)22:56 ID:6ofORGWH0(1) AAS
null合体演算子を使う方法もある
if (instance?.IsDisposed ?? true) {...}

「ヌルの場合は」という条件を強く示したいなら is null を明示して良いと思うけど、個人的にはこちらの方が簡潔に感じる

できればプロジェクトの設定でnull参照許容型を有効にして、 instance が null になり得るかを宣言時に分かるようにするとベター
(null になり得るなら MyClass? instance のように書く)
これが有効なプロジェクトなら、nullにならないもの (?がついてない変数やフィールド) についての null チェックはしなくて良い
390: (オイコラミネオ MMdd-15C+) 06/17(火)23:34 ID:iqT3/wLqM(1) AAS
それをコードそのまんまで日本語化してみろよ
基地外じみた内容にしかならない
391: (ワッチョイ 12e9-r7WK) 06/18(水)08:47 ID:KyoQ8vl80(1) AAS
ミネオはキチガイしか居らんのか
392: (ワッチョイ 794b-jgBs) 06/18(水)17:42 ID:SrJIdorw0(1) AAS
世界最長のコンテキストウィンドウ100万トークン入力・8万トークン出力対応にもかかわらずたった7800万円でトレーニングされたAIモデル「MiniMax-M1」がオープンソースで公開され誰でもダウンロード可能に
2025年06月18日 11時43分
外部リンク:gigazine.net
>>MiniMax-M1は、合計4560億のパラメーターが含まれており、トークンごとに459億のパラメーターがアクティブになるとのこと。これはDeepSeek R1の8倍に相当するコンテキストウィンドウです
>>以下のグラフは競技レベルの数学、コーディング、ソフトウェアエンジニアリング、エージェントツールの使用、長文理解タスクにおけるパフォーマンスを主要な商用AIモデルと比較したもの。赤色がMiniMax-M1で、どのタスクにおいても競合AIモデルに匹敵するパフォーマンスを発揮できている
>>MiiniMax-M1はいくつかのベンチマーク、特に長いコンテキスト駆動のベンチマークでClaude Opus 4のパフォーマンスを上回りました」と報告
※AIを動作させている動画あり
↓上記のAIお下記をプレイさせれば性能が判明する
Gemini 2.5 Proは手持ちのポケモンが瀕死になるとパニックに陥る
2025年06月18日 12時30分
省9
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.028s