[過去ログ] C#, C♯, C#相談室 Part96 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
54: デフォルトの名無しさん (ワッチョイ b702-zD41) [sage] 2022/02/06(日) 20:51:37.74 ID:St9v7rC+0(1) AAS
C#で多次元配列とか速度も遅いし普通は使わん
137(2): デフォルトの名無しさん (ワッチョイ a236-8qwV) [sage] 2022/03/15(火) 17:49:18.74 ID:uT8cdwkS0(1/4) AAS
相談させてください。
IntPtr を ref int に変換するために以下のようなコードを書くと、期待通り False と表示されます。
IntPtr ptr = Marshal.AllocCoTaskMem(4);
ref int x = ref Unsafe.AddByteOffset(ref Unsafe.NullRef<int>(), ptr);
Console.WriteLine(Unsafe.IsNullRef(ref x)); // False と表示される
Marshal.FreeCoTaskMem(ptr);
しかし、以下のように意味のない for 文を追加すると、コードの最適化が有効な場合のみ True と表示されます。
for (int i = 0; i < 0; i++) { } // 意味のない for 文
IntPtr ptr = Marshal.AllocCoTaskMem(4);
ref int x = ref Unsafe.AddByteOffset(ref Unsafe.NullRef<int>(), ptr);
Console.WriteLine(Unsafe.IsNullRef(ref x)); // 最適化が有効な場合のみ True と表示される
Marshal.FreeCoTaskMem(ptr);
ただし、意味のない for 文があっても
Unsafe.AddByteOffset(ref Unsafe.NullRef<int>(), ptr)
→ Unsafe.SubtractByteOffset(ref Unsafe.NullRef<int>(), -(nint)ptr)
のように書き換えると常に False と表示されるようになります。
なぜこのようなことが起こるのかさっぱり見当がつかないので、お知恵を拝借できないでしょうか。
私の環境を分かる範囲で書くと以下のとおりですが、他に何か必要な情報があればお教えください。
Windows 10 Pro (21H2)
Microsoft Visual Studio Community 2022 (64 ビット) Version 17.1.1
コンソール アプリケーション、.NET 6.0
どうぞよろしくお願いいたします。
292(1): デフォルトの名無しさん (ワッチョイ 3e2d-5qYK) [sage] 2022/05/21(土) 16:15:24.74 ID:ec9yQBCj0(1) AAS
>>290290(2): デフォルトの名無しさん (ワッチョイ 5b24-HkEA) [sage] 2022/05/21(土) 15:40:41.47 ID:4jCCGHc40(1) AAS
Utf8Parser.TryParse(span, out DateTime date, out _, 'O')について聞きたいんだけど、以下の文字列はUtf8Bytesとして
"2022-01-01T00:00:00.0000000Z" ← 28文字のこれなら正常に成功するのに
"2022-01-01T00:00:00.000000Z" ← 27文字のこっちは失敗する
DateTime.TryParseなら後者も成功するんだけどこれはUtf8Parserがポンコツってこと?
それともDateTime.TryParseがオーバー解析してくれてるだけで28文字未満の"O"形式のDateTime投げてくる方が非常識?
失敗しても仕様の範囲内ぽい
> ラウンドトリップ ("O"、"o") 書式指定子
> "O" または "o" 標準書式指定子は、DateTime 値の "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK" カスタム書式指定文字列と
> DateTimeOffset 値の "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzzz" カスタム書式指定文字列に対応します。
488: .NET MAUI HighScool (ワッチョイ 1301-cPfV) [] 2022/10/31(月) 18:17:47.74 ID:jJ3XoyNs0(1/2) AAS
今日知ったんだがSilk.NETってものがあるみたいね
これ一つでマルチメディア系のものを使用できるようになるみたい
OpenGLやDirectXとか
いかんせん情報ないけどどんな感じなんだろうか?
外部リンク:dotnet.github.io
541: デフォルトの名無しさん (ブーイモ MMeb-cv0M) [] 2022/11/04(金) 13:14:14.74 ID:K31HmSYJM(1) AAS
>>534はい?
703(1): デフォルトの名無しさん (ワッチョイ 775f-+Vtb) [] 2022/11/27(日) 01:41:14.74 ID:JLfYtSEn0(5/7) AAS
変数名を変えるだけでもだいぶ読みやすくなるし、コメントがそもそも要らなくなる箇所だってある
// "{b}" 相当の2進数表記に変換する
static string FormatBinary(uint a)
{
string ret = "";
while (a != 0) {
string adder = (a & 01).ToString();
ret = adder + ret;
a >>= 1;
}
return ret;
}
752: デフォルトの名無しさん (オイコラミネオ MM9b-635b) [sage] 2022/11/30(水) 12:36:59.74 ID:JopzVjhKM(2/2) AAS
>>751751(1): デフォルトの名無しさん (ワッチョイ d74f-emCW) [sage] 2022/11/30(水) 12:11:40.01 ID:wLtdZOQR0(1) AAS
COMオブジェクトの生成自体は
Type.GetTypeFromProgIDとかType.GetTypeFromCLSIDとかでType手に入れて
Activator.CreateInstanceで作れるはずだけど
CreateComInstanceFromを使ったことはないので同じことができるかどうかは分からん
それがあったかサンキュー
最近 .NETもLinuxばっかりでWindowsの記憶が飛んでるわ
826(1): デフォルトの名無しさん (ワッチョイ fb6e-zBmE) [] 2022/12/09(金) 09:59:32.74 ID:YeLe6gia0(1) AAS
SDKだけ渡しても( ゚д゚)ー?って涎垂らして固まるので
非エンジニア用に最低現のコードだけ書けば動くバカチョンな状態にしてあげたのがVSとそのコード
因みにガチのプロがVSCで作ったコードはVSでは動かせない
オワタ\(^o^)/チーン
851: デフォルトの名無しさん (アウアウウー Sa6b-Fzhe) [sage] 2022/12/11(日) 18:48:15.74 ID:HcYuyEaDa(1/2) AAS
コンパイル時間が気にならないならそうしたらいいんじゃね
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.046s