[過去ログ] ふらっと C#,C♯,C#(初心者用) Part153 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
384(4): デフォルトの名無しさん (テテンテンテン MM26-8VTm) [sage] 2022/01/05(水) 00:50:54.28 ID:JsfvM5KJM(1/6) AAS
>>382382(1): デフォルトの名無しさん (ワッチョイ e95f-rbeQ) [sage] 2022/01/04(火) 23:58:26.60 ID:f9obKWjH0(5/5) AAS
>>374
違わないよ。
全てTSの中であればNumberであることが担保されているのは、全てC#の中である場合と同程度に正しい。
C#の場合でも信頼境界を越えるのであればその可能性は考慮しないといけないし、TSの場合でも信頼境界を越えないのであれば気にする必要は無い。
ましてやTSというかJSはシングルスレッドなので別スレッドに壊される事も無い。
全てTSでも型が保証されない
最も簡単な事例は
const x: string = 100 as any
もちろんこんなコードを書く人はいないが
複雑で膨大なアプリケーションコードを扱うプロジェクトのなかで誰一人としてミスをしないかというと
そんな保証は全くなく型に嘘をつかれることになるだろう
386(1): デフォルトの名無しさん (ワッチョイ e95f-rbeQ) [sage] 2022/01/05(水) 00:56:20.83 ID:fuEg19Cq0(2/5) AAS
>>384
それはC#でも同じでしょ。
388(1): デフォルトの名無しさん (ワッチョイ e95f-rbeQ) [sage] 2022/01/05(水) 01:00:08.39 ID:fuEg19Cq0(3/5) AAS
>>384
大規模アプリ開発では、何層もの見えない層があった結果これが起こる。
オブジェクトの型を破壊的に変換 - C#と諸々」でググってみ。
394(1): デフォルトの名無しさん (ワッチョイ 2eb0-IeG5) [sage] 2022/01/05(水) 07:33:07.78 ID:OXnyWrYu0(1) AAS
>>384
既に>>349349(2): デフォルトの名無しさん (ワッチョイ 2eb0-IeG5) [sage] 2022/01/04(火) 12:53:18.36 ID:rkCZbU1/0(1/4) AAS
・間違ったコールバックの型付け
・間違ったasの使用
・間違った.d.tsの使用
・間違ったユーザー定義タイプガード
TypeScriptで肩を間違える可能性があるのはこんなところかね。
まぁ、自分で使いこなせないものを使わない方がいいってのはその通りだが、
他人も同じように使いこなせないわけじゃないしな。
で挙げているがそこに注意してプログラミングすればいいだけ。
お前は馬鹿だからそれができないんだろうが世の中の人間がみなお前と同じように馬鹿なわけではない。
410: デフォルトの名無しさん (スププ Sd62-rbeQ) [sage] 2022/01/05(水) 15:14:15.12 ID:ROW6egx4d(1) AAS
>>384
自分が守らなければそりゃ保証もされないだろ。
C#ならある型にはある値しか入らないと思ってそう。
例えば構造体につっこんでFieldOffsetで上書きすればあっさり壊れるぞ。
[StructLayout(LayoutKind.Explicit)]
struct XXX {
[FieldOffset(0)] public DateTime Value;
[FieldOffset(0)] public ushort Tag;
}
でXXX.Tagに適当なもの入れたらValueは無茶苦茶になる。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.046s