!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
■Visual Studio 2022 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/
■コードを貼る場合はこちら
http://ideone.com/
■前スレ
C#, C♯, C#相談室 Part97
https://mevius.5ch.net/test/read.cgi/tech/1671585518/
■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
C#, C♯, C#相談室 Part98
1デフォルトの名無しさん (ワッチョイ 7f6a-B4f6)
2024/06/29(土) 19:18:41.95ID:NohAfdfx0235デフォルトの名無しさん (ワッチョイ 4783-Ahcx)
2024/12/14(土) 12:52:03.62ID:/3oGIJ400 C# 8 からはインターフェースのデフォルト実装が使える
236デフォルトの名無しさん (ワッチョイ bf79-/9Tr)
2024/12/14(土) 14:27:07.29ID:TQJHLK8K0 Win10や11のOS付属のpowershell5.1でインラインで書けるC#ってバージョンちょっと古くね
できれば新しいRoslynのC#をpowershellから使いたいのだが
なんか昔の記事しか見つからん
できれば新しいRoslynのC#をpowershellから使いたいのだが
なんか昔の記事しか見つからん
237デフォルトの名無しさん (ワッチョイ bf19-xj7L)
2024/12/14(土) 15:05:36.28ID:uE892PPx0 どうせ別に入れる必要があるならPowerShell 7入れれば良くね
238デフォルトの名無しさん (ワッチョイ a78e-4Hmg)
2024/12/14(土) 16:09:38.02ID:SXm2TFHi0 >>236
起動時に出て来るメッセージすら読めないのか
起動時に出て来るメッセージすら読めないのか
239デフォルトの名無しさん (ワッチョイ 2679-qWVo)
2024/12/15(日) 03:52:31.32ID:c6iml+qS0 >>238
お前はこれでも読んどけ
https://learn.microsoft.com/ja-jp/powershell/scripting/whats-new/differences-from-windows-powershell?view=powershell-7.4
Roslyn単体で使うだけならビルドツール拾ってくるだけだが
Powershell上げるとなると仕様も大幅に変わってたりして無理だし俺が出した要件の解にもなってない
お前はこれでも読んどけ
https://learn.microsoft.com/ja-jp/powershell/scripting/whats-new/differences-from-windows-powershell?view=powershell-7.4
Roslyn単体で使うだけならビルドツール拾ってくるだけだが
Powershell上げるとなると仕様も大幅に変わってたりして無理だし俺が出した要件の解にもなってない
240デフォルトの名無しさん (ワッチョイ db8e-Dyog)
2024/12/15(日) 04:43:36.26ID:OuaeEhke0 >>239
馬鹿が必死に調べただけの浅い知識で言い訳してる
馬鹿が必死に調べただけの浅い知識で言い訳してる
241デフォルトの名無しさん (オイコラミネオ MM8f-Xxs2)
2024/12/15(日) 09:22:53.93ID:6s9C3wLNM 今のところ互換性の為に残してあるんだろう
それを変えちゃうと問題が起こる可能性があるしMS側のメンテがめんどうなので
変えたい人は7とセットで入れろということなんだろう
それを変えちゃうと問題が起こる可能性があるしMS側のメンテがめんどうなので
変えたい人は7とセットで入れろということなんだろう
242デフォルトの名無しさん (ワッチョイ fa12-/DxF)
2024/12/15(日) 13:32:12.27ID:1H80RXIX0243デフォルトの名無しさん (ワッチョイ fb50-Nme3)
2024/12/16(月) 00:02:44.03ID:jraeIOUM0 PowerShellは完全に袋小路だからもう諦めた方がいい
6以降は事実上Azure専用
6以降は事実上Azure専用
244デフォルトの名無しさん (ワッチョイ db8e-Dyog)
2024/12/16(月) 03:32:32.19ID:B9vFRMjT0245デフォルトの名無しさん (ワッチョイ 7e90-3k2I)
2024/12/16(月) 04:36:14.08ID:M2IkaScH0 なんで作っては捨ててくスタイルなんかなMicrosoftは
246デフォルトの名無しさん (ワッチョイ 4a2b-bCeE)
2024/12/16(月) 06:57:26.47ID:xj9X4IbW0 作ってないやろ
買収してるだけ
買収してるだけ
247デフォルトの名無しさん (ワッチョイ be10-Xxs2)
2024/12/16(月) 08:17:45.85ID:d6I1DTY60 PSはMSが作ってるが
248デフォルトの名無しさん (ワッチョイ 0bff-iztn)
2024/12/16(月) 09:42:40.38ID:WomMb93i0 Windowsに標準搭載されてる.NET Frameworkと今の.NETの時点で互換性ないのに
なんで.NETアプリであるPowerShellが叩かれるのか
なんで.NETアプリであるPowerShellが叩かれるのか
249デフォルトの名無しさん (ワッチョイ 0fd7-Xxs2)
2024/12/16(月) 12:31:10.08ID:zYOmJNRT0 標準搭載されてるPowerShellは.NETアプリじゃなくて.NET Frameworkアプリだからね
250デフォルトの名無しさん (ワッチョイ 2344-/DxF)
2024/12/16(月) 13:18:44.44ID:ZxGHnTET0251デフォルトの名無しさん (スププ Sd8a-omYb)
2024/12/16(月) 13:27:42.05ID:HTBCdLEid frameworkってなんでまだ存在するの?
252デフォルトの名無しさん (ワッチョイ be10-Xxs2)
2024/12/16(月) 15:54:22.92ID:d6I1DTY60 .NETがFrameworkと互換性無くて捨てられないから
253デフォルトの名無しさん (スププ Sd8a-omYb)
2024/12/16(月) 19:05:15.35ID:HTBCdLEid 互換性ないってことは、.NETとframeworkの2つのアプリを動かしたら、GCもそれぞれで動き始めるの?
254デフォルトの名無しさん (ブーイモ MM8a-1w4P)
2024/12/16(月) 21:44:01.92ID:dTKITl7UM >>253
GCはアプリ(プロセス)毎じゃないの
GCはアプリ(プロセス)毎じゃないの
255デフォルトの名無しさん (ワッチョイ 2ef8-Nme3)
2024/12/19(木) 20:41:55.41ID:KU+lpcLj0 PowerShellはWindowsにシステムワイドにインストールされた .NET Framework が存在するという前提で成立していたのに、
.NETでは.NET自体をアプリにバンドルするか、必要に応じて特定のバージョンを追加で入れるかになって完全に破綻しちゃったんだよね
一般的な.NETアプリならバンドルは可搬性が向上するから好ましいことだけど、
PowerShellの場合はシステムワイドにインストールされたいろんなモジュールと連携しなきゃいけないから.NETバンドルはありえない
完全に詰んでる
.NETでは.NET自体をアプリにバンドルするか、必要に応じて特定のバージョンを追加で入れるかになって完全に破綻しちゃったんだよね
一般的な.NETアプリならバンドルは可搬性が向上するから好ましいことだけど、
PowerShellの場合はシステムワイドにインストールされたいろんなモジュールと連携しなきゃいけないから.NETバンドルはありえない
完全に詰んでる
256デフォルトの名無しさん (ワッチョイ 0fd7-Xxs2)
2024/12/20(金) 08:54:32.70ID:6dsqio680 だからPowerShell Coreは標準装備じゃなくて追加装備
257デフォルトの名無しさん (ワッチョイ 2ef8-Nme3)
2024/12/20(金) 10:14:37.03ID:PANCPXf30 Windowsにそもそも入ってないなら追加インストールでいいんだけどね。問題は5が入っていること。
それによって「なぜ元々入っているのにわざわざ追加するのか」という当然の疑問を解消するコストが生じる。
開発者の好みだけでサポート期間も互換性も劣るゲテモノをゴリ押しするのは極めて困難だし、
そもそもPS書いて飯食ってるタイプのエンジニアでは最新に拘る人はそもそも少ないだろうね
それによって「なぜ元々入っているのにわざわざ追加するのか」という当然の疑問を解消するコストが生じる。
開発者の好みだけでサポート期間も互換性も劣るゲテモノをゴリ押しするのは極めて困難だし、
そもそもPS書いて飯食ってるタイプのエンジニアでは最新に拘る人はそもそも少ないだろうね
258デフォルトの名無しさん (ワッチョイ 4a2b-bCeE)
2024/12/20(金) 13:01:10.12ID:9RxE8mFw0 はいそろそろC#の話題でよろ
259デフォルトの名無しさん (ワッチョイ eb78-RqoG)
2024/12/20(金) 15:29:33.49ID:raronLtC0 JAIST、「並行量子通信プロトコル」の完全な自動形式検証を実現
http://news.mynavi.jp/techplus/article/20241220-3090485/
http://news.mynavi.jp/techplus/article/20241220-3090485/
260デフォルトの名無しさん (ワッチョイ 3365-/DxF)
2024/12/20(金) 17:50:29.82ID:0SGDMmeR0 >>258
なんかある?
なんかある?
261デフォルトの名無しさん (ワッチョイ 6a79-qWVo)
2024/12/20(金) 20:02:54.65ID:7538eGNC0 またペンギンやら飛べない鳥だとかの話がしたいのかい?
それともPowshellの付属物の話がしたいのかい?
どっちなんだい?
それともPowshellの付属物の話がしたいのかい?
どっちなんだい?
262デフォルトの名無しさん (アウアウエー Sae2-N2kD)
2024/12/21(土) 10:56:38.14ID:bIHzWCsda >>257
>それによって「なぜ元々入っているのにわざわざ追加するのか」という当然の疑問を解消するコストが生じる。
>開発者の好みだけでサポート期間も互換性も劣るゲテモノをゴリ押しするのは極めて困難だし、
ほんそれ
5が全部入りにしておくのが正解だっただろうな
>それによって「なぜ元々入っているのにわざわざ追加するのか」という当然の疑問を解消するコストが生じる。
>開発者の好みだけでサポート期間も互換性も劣るゲテモノをゴリ押しするのは極めて困難だし、
ほんそれ
5が全部入りにしておくのが正解だっただろうな
263デフォルトの名無しさん (オイコラミネオ MM8f-Xxs2)
2024/12/21(土) 11:18:40.67ID:gj7hxYFQM PS for sysetmみたいなのを最小セットで入れておけば良かった
264デフォルトの名無しさん (ワッチョイ be10-Xxs2)
2024/12/21(土) 11:42:21.51ID:4NNdAFL10 終わらないPS談義
265デフォルトの名無しさん (ワッチョイ 8f5d-/DxF)
2024/12/21(土) 17:53:08.76ID:BdmznDtW0266デフォルトの名無しさん (ワッチョイ be10-Xxs2)
2024/12/21(土) 18:15:03.35ID:4NNdAFL10 いや知らんがw
俺がC#の話題にしろ言うたわけじゃないしw
俺がC#の話題にしろ言うたわけじゃないしw
267デフォルトの名無しさん (ワッチョイ 177d-N2O4)
2024/12/21(土) 21:57:55.88ID:i5j/m89y0 今関わってるプロジェクトがスペース2つでインデントしててちょっと面食らってしまったんだけどこれ珍しくないもの?
今まで携わってきた中で一件も遭遇したことなかった
今まで携わってきた中で一件も遭遇したことなかった
268デフォルトの名無しさん (ワッチョイ 6a6a-Pm71)
2024/12/21(土) 22:11:41.26ID:lUhayCnC0 過去に深いネストを大量生産する人がエラくなっちゃって、そういうルールになってしまったんじゃないかと妄想しちゃうなw
269デフォルトの名無しさん (ワッチョイ 8f5d-/DxF)
2024/12/21(土) 23:25:41.77ID:BdmznDtW0 今時スペース2個は珍しいな、C#とかではあんまりない気がする
昔々はどの言語でもタブを使っていいかとか、スペースで代用するなら2個か4個かで論争があったらしい
JSは2個が主流だった気がするけど今はどうだろ
昔々はどの言語でもタブを使っていいかとか、スペースで代用するなら2個か4個かで論争があったらしい
JSは2個が主流だった気がするけど今はどうだろ
270デフォルトの名無しさん (ワッチョイ a301-28Ti)
2024/12/21(土) 23:39:03.76ID:L6mtJxlH0 jsonは2だったり4だったりまちまちだけどね
271デフォルトの名無しさん (ワッチョイ 5f95-EHcm)
2024/12/22(日) 00:09:01.63ID:tw4BvM7X0 タブのが合理的
Goみたいな標準フォーマッタがあるのが理想だけどC#はそう言う文化はないね
Goみたいな標準フォーマッタがあるのが理想だけどC#はそう言う文化はないね
272デフォルトの名無しさん (ワッチョイ df79-0Q8V)
2024/12/22(日) 02:26:26.71ID:/fc7feyD0 俺はスペース2個のが視線移動減って楽だと感じてるからかなり昔から2個派だよ
>>268みたいな日本人特有の右倣えのお仕着せルールに甘んず昔から超効率化してるやつらは世の中に沢山いるんだよ
勉強になったな
>>268みたいな日本人特有の右倣えのお仕着せルールに甘んず昔から超効率化してるやつらは世の中に沢山いるんだよ
勉強になったな
273デフォルトの名無しさん (ワッチョイ 2b28-MhhP)
2024/12/22(日) 03:54:49.07ID:f4R4W69d0 TABに統一してるけど
表示上は半角スペース2から4個で用途で変えてる
表示上は半角スペース2から4個で用途で変えてる
274デフォルトの名無しさん (スププ Sd03-+INx)
2024/12/22(日) 05:02:43.67ID:SvMpALOcd {}は
if(){
}
の方が好き
普通は
if()
{
}
これ?
if(){
}
の方が好き
普通は
if()
{
}
これ?
275デフォルトの名無しさん (ワッチョイ 832b-8NiF)
2024/12/22(日) 05:44:22.67ID:96LlHbpn0 逆、最初の頃は上が大多数
ブログやら初心者講座やらで下の書き方が主流担ってきてる感じ
ブログやら初心者講座やらで下の書き方が主流担ってきてる感じ
276デフォルトの名無しさん (ワッチョイ b310-3P54)
2024/12/22(日) 06:21:31.74ID:I7bhR46i0 スペース2個インデントって言うと、XMLやHTMLを思い浮かべるな
277デフォルトの名無しさん (ワッチョイ 957c-Th9R)
2024/12/22(日) 07:48:19.66ID:dFQQq0VB0278デフォルトの名無しさん (ワッチョイ 957c-Th9R)
2024/12/22(日) 07:50:46.11ID:dFQQq0VB0279デフォルトの名無しさん (ワッチョイ 957c-Th9R)
2024/12/22(日) 07:53:26.28ID:dFQQq0VB0280デフォルトの名無しさん (ワッチョイ 832b-8NiF)
2024/12/22(日) 08:13:40.94ID:96LlHbpn0281デフォルトの名無しさん (ワッチョイ 832b-8NiF)
2024/12/22(日) 08:20:56.74ID:96LlHbpn0 当時、というか関数書くときって
hoge(){
…}
て書くのが一般的やったん
んでDelphiが出てきたらこの{}をBegin…Endで囲むから
hoge()
Begin
…
End
ここらへんはVBやVBAとかにも反映されて
その後C#で出した際にって感じかな
hoge(){
…}
て書くのが一般的やったん
んでDelphiが出てきたらこの{}をBegin…Endで囲むから
hoge()
Begin
…
End
ここらへんはVBやVBAとかにも反映されて
その後C#で出した際にって感じかな
282デフォルトの名無しさん (ワッチョイ 5f95-EHcm)
2024/12/22(日) 09:15:42.08ID:tw4BvM7X0 >>279
タブをインデントで使ってスペースをアライメントで使えば理論上ズレないよ
Goのフォーマッタはこれに従ってるからタブ幅は任意に設定できる
prettierみたいな途中で強制的に折り返すフォーマッタとは相性が悪いけど
タブをインデントで使ってスペースをアライメントで使えば理論上ズレないよ
Goのフォーマッタはこれに従ってるからタブ幅は任意に設定できる
prettierみたいな途中で強制的に折り返すフォーマッタとは相性が悪いけど
283デフォルトの名無しさん (ワッチョイ 5f95-EHcm)
2024/12/22(日) 09:22:40.24ID:tw4BvM7X0 Indent with tabs, align with spaces
https://dmitryfrank.com/articles/indent_with_tabs_align_with_spaces
これね
これが理想だけどエンジニアのレベルが高くないとこのルールを守るのは難しいからスペースにしてるのが大半
ただしGoは強制フォーマッタでこれを解決してる
個人プロジェクトなら最初から好きなタブ幅にすればいいからタブにするメリットもあまりないし
気分でタブ幅変えれるのは結構メリットあるけどね
https://dmitryfrank.com/articles/indent_with_tabs_align_with_spaces
これね
これが理想だけどエンジニアのレベルが高くないとこのルールを守るのは難しいからスペースにしてるのが大半
ただしGoは強制フォーマッタでこれを解決してる
個人プロジェクトなら最初から好きなタブ幅にすればいいからタブにするメリットもあまりないし
気分でタブ幅変えれるのは結構メリットあるけどね
284デフォルトの名無しさん (ワッチョイ b310-3P54)
2024/12/22(日) 09:27:48.67ID:I7bhR46i0 俺はずっと>>274の前者でインデントはタブだなぁ
なおタブの幅はスペース4個分
なおタブの幅はスペース4個分
285デフォルトの名無しさん (ワッチョイ 7b8b-vY+B)
2024/12/22(日) 11:59:15.10ID:US35TJKc0 「自転車置き場の屋根の色」現象発生中
286デフォルトの名無しさん (スッップ Sdaf-3P54)
2024/12/22(日) 13:03:56.05ID:ci/BAnbad この手の話は職場のルールで決まるから個人がどうこうは関係ないよな
ただ自分のツールなんかは好きにしろだが
カッコ、演算子、型と変数の宣言の間の空白などもめる話題はいくらでもある
ただ自分のツールなんかは好きにしろだが
カッコ、演算子、型と変数の宣言の間の空白などもめる話題はいくらでもある
287デフォルトの名無しさん (ワッチョイ 195d-PrDn)
2024/12/22(日) 16:36:51.22ID:J7cuP3Nu0 >>285
「原子力発電所の建設」について議論したいなら付き合うよ、それで議題は?
「原子力発電所の建設」について議論したいなら付き合うよ、それで議題は?
288デフォルトの名無しさん (ワッチョイ 957c-Th9R)
2024/12/22(日) 17:09:33.96ID:dFQQq0VB0 まあreshaperでテーム共有設定使うだけだしな
289デフォルトの名無しさん (ワッチョイ 7b8b-vY+B)
2024/12/22(日) 19:48:07.14ID:US35TJKc0 >>287
では失礼して
Unity製ゲームのMOD開発なんかでリフレクション使いまくるのもなんかスマートじゃないから、
aelij氏のIgnoresAccessChecksToGeneratorを魔改造させてもらってフィールド含めて全パブリック&readonly解除でゲームのコードに全アクセス出来るようになってめっちゃ捗るようになったのだけど、
欲が出て標準ライブラリにも手を出したくなってやってみたらmscorlibなんかはReferenceAssemblyだからプライベートフィールドはそもそもdll内に含まれてないから書き換えられないんだよね。
ランタイム時の実体dllを決め打って渡せばstring.m_firstCharとかList<T>._sizeとかも全てアクセスできるようにはなるんだけど決め打ち渡しもスマートじゃないからどうにか自動で解決をしたい。
ILSpyやmono.cecilにはランタイム時の実体dllを特定するコードあるんだけどbuildアクションから同じ事するのって可能だろうか?
では失礼して
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:36.15ID:zKZ5mRgv0 はい
291デフォルトの名無しさん (ワッチョイ 7b8b-vY+B)
2024/12/22(日) 20:10:00.61ID:US35TJKc0 へー
なんだかもうゲームよりMOD開発、MOD開発より開発環境開発の方が長くなっちゃってますわ
なんだかもうゲームよりMOD開発、MOD開発より開発環境開発の方が長くなっちゃってますわ
292デフォルトの名無しさん (ワッチョイ 832b-8NiF)
2024/12/22(日) 20:35:36.44ID:96LlHbpn0 だって、ここ
別にゲーム開発やないし
プログラムやで
別にゲーム開発やないし
プログラムやで
293デフォルトの名無しさん (ワントンキン MM33-MooF)
2024/12/22(日) 20:50:51.80ID:F7NwxYJ7M いまだにmonoで簡単にいじられまくりゲームあるのか
294デフォルトの名無しさん (ワッチョイ 0364-PrDn)
2024/12/23(月) 00:10:04.98ID:XKMn6iMr0 >>289
日本語がややこしいけど
①標準ライブラリのPrivate含む全フィールドにリフレクションを使わずにアクセスして書き換えたりしたい
んで、
②実体DLLを決め打ちで渡せばアクセスできるってところまでできてる
あとは
③実体DLL取得を自動化したい
④なおかつビルドプロセスに組み込みたい
ってことか
MOD開発とか知らんけど面白そうじゃん
日本語がややこしいけど
①標準ライブラリのPrivate含む全フィールドにリフレクションを使わずにアクセスして書き換えたりしたい
んで、
②実体DLLを決め打ちで渡せばアクセスできるってところまでできてる
あとは
③実体DLL取得を自動化したい
④なおかつビルドプロセスに組み込みたい
ってことか
MOD開発とか知らんけど面白そうじゃん
295デフォルトの名無しさん (ワッチョイ 0364-PrDn)
2024/12/23(月) 00:36:21.82ID:XKMn6iMr0 いまいち細かい要件がよくわからんけどAppDomain.CurrentDomain.GetAssemblies()で現在ロードされているすべてのアセンブリが取得できるらしいが、これ試した?
駄目だったならどういうところがダメだったのか教えてくれ
駄目だったならどういうところがダメだったのか教えてくれ
296デフォルトの名無しさん (ワッチョイ 7b8b-vY+B)
2024/12/23(月) 17:33:16.62ID:HWay8A+S0 >>295
要するにIgnoresAccessChecksToGeneratorの話でMSBuild内のコードとして動くものだからそれやってもMSBuildがロードしてるものが返されるだけとなる
ILSpyなんかもtypeof(object)などから解決してるので上記の理屈でそのまま移植はできない
要するにIgnoresAccessChecksToGeneratorの話でMSBuild内のコードとして動くものだからそれやってもMSBuildがロードしてるものが返されるだけとなる
ILSpyなんかもtypeof(object)などから解決してるので上記の理屈でそのまま移植はできない
297デフォルトの名無しさん (ワッチョイ 7b8b-vY+B)
2024/12/23(月) 17:42:25.10ID:HWay8A+S0 >>293
マルチメインじゃなくmodフレンドリーなゲームならil2cpp化せずそのまま出してるゲームも普通に多いよ
改変やチート防止のためなら難読化含めてやったところでそこまで難易度上がらないからそれ目的ならRustみたいにカーネルドライバ付けるしかない
マルチメインじゃなくmodフレンドリーなゲームならil2cpp化せずそのまま出してるゲームも普通に多いよ
改変やチート防止のためなら難読化含めてやったところでそこまで難易度上がらないからそれ目的ならRustみたいにカーネルドライバ付けるしかない
298デフォルトの名無しさん (ワッチョイ a374-PrDn)
2024/12/24(火) 18:58:01.04ID:9YLK2p020 個人開発の局所的な用途のマイナーツールの話が原発の建設並の重大事なのか
ちょっと難しすぎてわかんねえな
ちょっと難しすぎてわかんねえな
299デフォルトの名無しさん (ワッチョイ df79-0Q8V)
2024/12/24(火) 19:41:54.52ID:RgkKZ0Pj0 原発ってただの湯沸かし器じゃん
燃料がちょっとヤバイってだけで高尚なC#のプログラムと比較すんなよ
燃料がちょっとヤバイってだけで高尚なC#のプログラムと比較すんなよ
300デフォルトの名無しさん (スッップ Sdaf-3P54)
2024/12/25(水) 08:00:53.24ID:vP0zyznod C#だってただの道具
しかもC#だけじゃお湯も沸かせない
高尚とかちゃんちゃらおかしい
しかもC#だけじゃお湯も沸かせない
高尚とかちゃんちゃらおかしい
301デフォルトの名無しさん (ワッチョイ 57ef-FEgH)
2024/12/25(水) 08:26:32.01ID:ML8x6ihA0 ツールは手段であって目的はアクセシビリティバイパスだから言語レベルのスケールの話な
実際これ求めてる人は少なくないからUnsafeAccessorが実装された訳で
てかリフレクションの方が文字列で指定してる分よっぽど危険だと思うんだけどな
実際これ求めてる人は少なくないからUnsafeAccessorが実装された訳で
てかリフレクションの方が文字列で指定してる分よっぽど危険だと思うんだけどな
302デフォルトの名無しさん (ワッチョイ df79-0Q8V)
2024/12/25(水) 21:07:50.83ID:G9TljzDw0 エロがビデオを進化させてきようにチートがソフトウェアを進化させるんだよ
湯沸かししかできない原発野郎は難しいなら黙ってろ
湯沸かししかできない原発野郎は難しいなら黙ってろ
303デフォルトの名無しさん (ワッチョイ 5761-PrDn)
2024/12/25(水) 21:35:48.64ID:7oEpQVAc0 煽りたいだけのやつが居着いちゃってるのか、このスレ
304デフォルトの名無しさん (ワッチョイ b310-3P54)
2024/12/25(水) 21:39:40.34ID:WXVFxdaX0 いつものことだよあぼーんしときな
305デフォルトの名無しさん (ワッチョイ 832b-8NiF)
2024/12/25(水) 21:44:21.01ID:WWJbrOfz0 だぁ~から
ドーンおじはコテ付けろや
ドーンおじはコテ付けろや
306デフォルトの名無しさん (ワッチョイ 3ec0-m72+)
2025/01/01(水) 16:01:04.94ID:nGCOTvnw0 Enum.IsDefined(enumType, intValue)ってボックス化する?
AIに聞いたら最初は「ボックス化しない」とか言われたんだけど、第2引数がobject型として受け取ることを指摘したら「ボックス化するかもしれません」みたいな曖昧な返答されてよく分からなくなってきた
AIに聞いたら最初は「ボックス化しない」とか言われたんだけど、第2引数がobject型として受け取ることを指摘したら「ボックス化するかもしれません」みたいな曖昧な返答されてよく分からなくなってきた
307デフォルトの名無しさん (ワッチョイ 9a8b-tkBd)
2025/01/01(水) 16:03:34.19ID:zfs+VkVC0 object型ならするよ
.NETのバージョンにもよるけどgeneric版の方が型がコンパイル時解決されるからパフォーマンスは良い
.NETのバージョンにもよるけどgeneric版の方が型がコンパイル時解決されるからパフォーマンスは良い
308デフォルトの名無しさん (ワッチョイ 3ec0-m72+)
2025/01/01(水) 16:07:11.80ID:nGCOTvnw0 だよね ありがとう
309デフォルトの名無しさん (ワッチョイ 3ec0-m72+)
2025/01/01(水) 16:23:43.79ID:nGCOTvnw0 確かにジェネリクスで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);
}
ありがとう
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)
2025/01/01(水) 22:57:38.89ID:tBHA6FMH0 JetbrainsやILSpyでIL見てboxあるかどうかみればいいんじゃね
311デフォルトの名無しさん (ワッチョイ 9a8b-IJXt)
2025/01/31(金) 11:32:40.83ID:jXb+sjQI0 ハック的なことなんだけどインスタンスのオブジェクトヘッダに埋め込まれるクラスハンドルへのポインタ?をインスタンス無しで得る方法って無いかな
typeof(MyClass)ってすると正にそのポインタが「mov rcx, 7FFB716DE758 -> call clrのtype取得関数」って感じのアセンブラが生成される訳だけど、その7FFB716DE758を得たいんだよね
インスタンスがあればUnsafeライブラリ用いて簡単に得られるのだけど
typeof(MyClass)ってすると正にそのポインタが「mov rcx, 7FFB716DE758 -> call clrのtype取得関数」って感じのアセンブラが生成される訳だけど、その7FFB716DE758を得たいんだよね
インスタンスがあればUnsafeライブラリ用いて簡単に得られるのだけど
312デフォルトの名無しさん (ワッチョイ 9a8b-IJXt)
2025/01/31(金) 11:34:05.08ID:jXb+sjQI0 文章修正してたら日本語おかしくなったけどもし知ってる方いたらヒントでも何でも教えていただきたい
313デフォルトの名無しさん (ワッチョイ 9714-natb)
2025/01/31(金) 12:00:57.31ID:ejyfLYzx0 GetTypeで得られるものとは違うわけ?
314デフォルトの名無しさん (ワッチョイ 9a8b-IJXt)
2025/01/31(金) 12:51:25.22ID:jXb+sjQI0 >>313
GetTypeやtypeofで得られるものはあくまでもType型のマネージドインスタンスだから全く違う
だけど逆アセをするとtypeof()時には即値でハンドルへのポインタ?がアセンブラコードとして埋め込まれてるので内部的にはめちゃくちゃ簡単に得る方法があるはずなんだよね
GetTypeやtypeofで得られるものはあくまでもType型のマネージドインスタンスだから全く違う
だけど逆アセをするとtypeof()時には即値でハンドルへのポインタ?がアセンブラコードとして埋め込まれてるので内部的にはめちゃくちゃ簡単に得る方法があるはずなんだよね
315デフォルトの名無しさん (ワッチョイ 9a8b-IJXt)
2025/01/31(金) 14:52:24.28ID:jXb+sjQI0 一応自己解決だけどGetTypeやtypeofで得られたTypeインスタンスから「type.TypeHandle.Value」で希望のものは得られた
本来即値で得られるはずなのに冗長でもやもやはするが
本来即値で得られるはずなのに冗長でもやもやはするが
316デフォルトの名無しさん (ワッチョイ 1a9d-natb)
2025/01/31(金) 15:09:15.71ID:gpRv5mHv0 ChatGPTに聞いたら同じ答えが返ってきたけどRuntimeTypeHandle.Valueは環境によってメソッドテーブルへのポインタじゃなくEETypeへのポインタや実装依存のメタデータへのポインタになる場合もあるから自分で確認しろよとのこと
317デフォルトの名無しさん (ワッチョイ 4e10-EVp+)
2025/02/01(土) 06:49:44.36ID:LNgv56j/0 そらJITなんだから・・・
318デフォルトの名無しさん (ワッチョイ 1a9d-natb)
2025/02/01(土) 10:13:37.11ID:m26c//aC0 いやJITは関係ないぞ
319デフォルトの名無しさん (ワッチョイ 9a8b-IJXt)
2025/02/01(土) 11:06:41.29ID:dQW8A9nv0 JITだろうが何だろうがconst intなんかは即値で埋め込まれるしね
だからクラス名.TypeHandleValueみたいなconst持っててくれたら嬉しいんだけど需要ほぼゼロすぎるか
だからクラス名.TypeHandleValueみたいなconst持っててくれたら嬉しいんだけど需要ほぼゼロすぎるか
320デフォルトの名無しさん (ワッチョイ 1a9d-natb)
2025/02/01(土) 12:12:47.05ID:m26c//aC0 ん?即値で得られない理由の話だったか
そっちならJIT関係あるわな
そっちならJIT関係あるわな
321デフォルトの名無しさん (ワッチョイ 9a8b-IJXt)
2025/02/01(土) 12:17:46.65ID:dQW8A9nv0 いや関係ないよ
なぜなら逆アセすれば分かるけど思いっきりレジスタ長以下のconst同様の挙動を見せてるからね
typeof時にね
なぜなら逆アセすれば分かるけど思いっきりレジスタ長以下のconst同様の挙動を見せてるからね
typeof時にね
322デフォルトの名無しさん (ワッチョイ 17d7-EVp+)
2025/02/01(土) 12:48:59.04ID:MtSj47O+0 逆アセw
323デフォルトの名無しさん (ワッチョイ 4e10-EVp+)
2025/02/01(土) 12:53:04.51ID:LNgv56j/0 アドレスとかプロセス起動のたびに変わることは無いんだっけ?
324デフォルトの名無しさん (ワッチョイ 9a8b-IJXt)
2025/02/01(土) 12:59:03.20ID:dQW8A9nv0325デフォルトの名無しさん (ワッチョイ 4e10-EVp+)
2025/02/01(土) 13:11:42.17ID:LNgv56j/0 なら結局、ユーザークラスじゃ都度変わりうるってことじゃ?
326デフォルトの名無しさん (ワッチョイ a36b-natb)
2025/02/01(土) 15:14:32.83ID:XDtywhx90327デフォルトの名無しさん (ワッチョイ 3f79-sZTl)
2025/02/02(日) 01:00:15.78ID:U03i5Xdj0 ILの段階で定数になるなら決め撃ちで問題ないだろ
328デフォルトの名無しさん (ワッチョイ 7f10-cJwu)
2025/02/02(日) 06:57:31.12ID:VLFyjNJe0 ユーザークラスがILの段階で決め打ちになるわけないだろ
329デフォルトの名無しさん (ワッチョイ 3f8b-YkUZ)
2025/02/02(日) 10:55:04.54ID:NGhOMzti0 ユーザークラスだろうが何だろうが別に関係ないし
IL段階で定数になる必要もなくて事実として実行時に機械語になるタイミングで定数化されるんだよ
プログラマがその定数にアクセスする手段がないだけで
IL段階で定数になる必要もなくて事実として実行時に機械語になるタイミングで定数化されるんだよ
プログラマがその定数にアクセスする手段がないだけで
330デフォルトの名無しさん (ワッチョイ 0fd7-cJwu)
2025/02/02(日) 11:18:20.90ID:RNSPFW0b0 実行時にならんと決まらんものは定数じゃねぇ
331デフォルトの名無しさん (ワッチョイ 3f8b-YkUZ)
2025/02/02(日) 12:43:09.18ID:NGhOMzti0 定数ってか再三言ってるけど即値だな
332デフォルトの名無しさん (ベーイモ MM8f-VqRJ)
2025/02/03(月) 22:15:38.62ID:EtXs2rHFM インスタンスの型の厳密なチェック typeof (X) == x.GetType() やジェネリック型のチェック typeof (T) == typeof (X) はJITで最適化されるから、
質問者のケースがもしこれらに該当するなら変なハックは必要ない
質問者のケースがもしこれらに該当するなら変なハックは必要ない
333デフォルトの名無しさん (ワッチョイ 5f90-YkUp)
2025/04/14(月) 17:39:25.74ID:XKwEHxpo0 Task<T>を返す非同期メソッドをUIスレッドで呼び出して結果を取得したいのですがどうすればいいのでしょうか?
ConfigureAwait(false)の後やTask.Runでスレッドプール上?で実行されてる
コード内からメソッドをUIスレッドで呼んで結果を取得したいのです
ConfigureAwait(false)の後やTask.Runでスレッドプール上?で実行されてる
コード内からメソッドをUIスレッドで呼んで結果を取得したいのです
334デフォルトの名無しさん (ワッチョイ bfbc-6F/1)
2025/04/16(水) 05:53:28.46ID:HaWtxdw70 イマイチ質問が把握できないがこういうことか?
UIスレッドでTaskScheduler.FromCurrentSynchronizationContext();してTaskSchedulerを確保しておく
UIスレッドで実行したいメソッドは上記TaskSchedulerを使ってStartするTaskとして実行する
public Form1()
{
this.Button1.Click += ExecuteAsync;
}
async void ExecuteAsync(object? sender, EventArgs e)
{
var scheduler = TaskScheduler.FromCurrentSynchronizationContext();
await Task.Run(async () => {
using var logger = new Logger("Task");
var task = Task.Factory.StartNew<Task>(() => SetTextAsync(), CancellationToken.None, CreationOptions.None, scheduler);
await task;
await task.Result;
});
}
async Task SetTextAsync() {
await Task.Delay(1000);
this.Text = DateTime.Now.ToString("HH:mm:ss");
}
UIスレッドでTaskScheduler.FromCurrentSynchronizationContext();してTaskSchedulerを確保しておく
UIスレッドで実行したいメソッドは上記TaskSchedulerを使ってStartするTaskとして実行する
public Form1()
{
this.Button1.Click += ExecuteAsync;
}
async void ExecuteAsync(object? sender, EventArgs e)
{
var scheduler = TaskScheduler.FromCurrentSynchronizationContext();
await Task.Run(async () => {
using var logger = new Logger("Task");
var task = Task.Factory.StartNew<Task>(() => SetTextAsync(), CancellationToken.None, CreationOptions.None, scheduler);
await task;
await task.Result;
});
}
async Task SetTextAsync() {
await Task.Delay(1000);
this.Text = DateTime.Now.ToString("HH:mm:ss");
}
335デフォルトの名無しさん (ワッチョイ bfbc-6F/1)
2025/04/16(水) 05:58:12.67ID:HaWtxdw70 あ、TaskCreationOptionsのTaskが抜けてる…
async Task SetTextAsync()の代わりにasync Task<string> GetTextAsync()だったら
StartNew<Task<string>>にしてvar text = await task.Resultすればいい
async Task SetTextAsync()の代わりにasync Task<string> GetTextAsync()だったら
StartNew<Task<string>>にしてvar text = await task.Resultすればいい
レスを投稿する
ニュース
- 【速報】政府、与党がNISA未成年解禁を検討 ★2 [蚤の市★]
- 中国外務省「正式な発言撤回なければ受け入れず」 高市首相は台湾有事「存立危機事態」言及せずも「言及しないことと撤回は別問題」★12 [ぐれ★]
- 【TV】ファン5万人がガチで投票! プロ野球総選挙、栄えある1位は [牛丼★]
- 「まだ朝7時に通勤してるんですか?」人気VTuberが語った“働き方への提言”に議論沸騰 [夜のけいちゃん★]
- 【*彡】巨人・坂本勇人 『流れ星に何を願うか』の質問に「結婚相手」と即答、結婚願望告白 女性ファンから歓声と悲鳴 [鉄チーズ烏★]
- 【おこめ】ベトナムから密輸のコメを「国産」と偽り販売容疑、ベトナム人ら2人追送検…300トン売って1億3000万円稼いだか 大阪 ★2 [ぐれ★]
- 【ネトウヨ死亡w】AIに「日中関係の今後を予測してみて」と聞いた結果、「日本必敗」と判明 [314039747]
- 【画像】ぼく、久しぶりに見た松本若菜(41)が可愛くてに恋をする [904880432]
- 高市早苗「いいから黙って全部アタシに投資しなさい!」国際金融会議で発言し周囲ドン引き [165981677]
- (📞・᷄ὢ・᷅)はいおはぎ警察です……え?ウチはピザ屋じゃありません
- リステリン買っちった🥴
- プラトンの「哲人政治」は正しかったのでは? アホな大衆に政治家を選ばせるとロクなことにならない [653462351]
