[過去ログ] ふらっと C#,C♯,C#(初心者用) Part154 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
591
(1): デフォルトの名無しさん (ワッチョイ dabd-pKa3) [sage] 2022/05/08(日) 00:36:52.25 ID:19hEeZmX0(1/4) AAS
VisualStudio 2019の<Nullable>enable</Nullable> 環境で、変数のツールチップにString型の時だけ「ここではxxxはnullではありません」と表示されるんだけど
これって最新の2022では直っていたりしますか。

画像リンク


おかしいのはツールチップだけで、nullableの判定は問題ない感じ。
longとかDateTimeとか色々試したけど、String型だけで表示された。なんで。
593: デフォルトの名無しさん (ワッチョイ dabd-pKa3) [sage] 2022/05/08(日) 01:02:19.98 ID:19hEeZmX0(2/4) AAS
え、値型ってそういう事だったの と思って以下のコードで確認したら==null がtrueになっていました

int? a = null;
if(a == null) {
Debug.Print($"a is null"); // こっちになる
} else {
Debug.Print($"a=[{a}]");
}

int? がnullになっているように見えるのですが、もう少しアドバイスを頂けますでしょうか。
595: デフォルトの名無しさん (ワッチョイ dabd-pKa3) [sage] 2022/05/08(日) 01:34:49.43 ID:19hEeZmX0(3/4) AAS
ありがとうございます。ツールチップだからそんなものか。
と、思ったらロジックでも不明点がありました。

以下のコードでIsIntがエラーになるのですが、これもそういうものなのでしょうか。
if文で非nullチェックをしても、型としてはint?だから IsInt(int v) は呼べない。という事は分かるのですが、
string?はifで非nullチェックをすると string 扱いになるので挙動が違うのですが、これもそういうものなのでしょうか。

void IsString(string v) { };
void IsInt(int v) { };
string? a = null;
if(a!=null){
IsString(a);
}
int? b = null;
if(b!=null){
IsInt(b); // 引数 1: は 'int?' から 'int' へ変換することはできません のエラーが出る。
}

↑両方通るか、両方エラーが出るならわかるけど 値型だけエラーが出る?
598: デフォルトの名無しさん (ワッチョイ dabd-pKa3) [sage] 2022/05/08(日) 04:04:06.14 ID:19hEeZmX0(4/4) AAS
ありがとうございます。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.053s