C#教科書を身につける.Null

3062 ワード

https://www.youtube.com/watch?v=yj-mCQv8C94&list=PLO56HZSjrPTB4NxAsEP8HRk6YKBDLbp7m&index=49

1. Null

  • は、何もない文字を表し、オブジェクトが何も参照しないことをnull参照
  • と呼ぶ.
  • 何も
  • を指しません

    2.NullとNullを参照



    3.nullを参照

    > int i = 0; // 값형(Value Type)
    > string s = null; // 참조형(Reference Type)
    > s = "안녕하세요.";
    > string empty = ""; // 빈값(Empty)은 null과는 다름

    4.Nullable<T>構造体を使用して空のフォーマット変数を作成する

  • Nullable形式:null(値がないことを示す)を割り当てることができる形式
  • 参照フォーマット:空の割当て可能
  • 値フォーマット:nullを割り当てることはできません
  • でもtype?この宣言はnullを置き換えることができます
  • int? num = null;
  • > Nummable<bool> bln = null;
    > bln.HasValue
    false
    > bln = true;
    > bln.HasValue
    true

    5. ?? 演算子(空の連結演算子)

    > string nullValue = null;
    > string message = "";
    >
    > //[1] if 구문으로 null 값 비교
    > if(nullValue == null)
    . {
    . 	message = "[1] null이면 새로운 값으로 초기화 합니다.";
    . }
    > message;
    "[1] null이면 새로운 값으로 초기화 합니다."
    >
    > //[2] ?? 연산자로 null 값 비교
    > message = nullValue ?? "[2] null이면 새로운 값으로 초기화합니다.";
    > message
    "[2] null이면 새로운 값으로 초기화합니다."
    > nullValue = "hello";
    > message = nullValue ?? "[2] null이면 새로운 값으로 초기화합니다.";
    > message
    "hello"
    > int? x = null;
    > int y = x ?? 100;
    > int z = x ?? default(int);
    > int z = x ?? default;

    6. ?.(エルビス)null条件演算子(Null Conditional)

    > double? d = null;
    > d
    null
    > d?.ToString(); // 만약에 d가 null 값이 아니면 문자열 변환해서 출력하라
    null
    > d = 1.0
    > d?.ToString();
    "1"
    > d?.ToString("#.00");
    "1.00"

    7. ??(連結演算子)&?(空の条件演算子)を使用

  • ??, コレクションがnullでない場合、値が返され、nullである場合、後で指定する値
  • が返されます.
  • ?., コレクションがnullの場合、nullが返されます.そうでない場合、後続の属性値
  • が返されます.
    > int num;
    > List<string> list;
    > // [1] 컬렉션 리스트가 null이면 Count를 읽을 수 없기에 0으로 초기화
    > list = null;
    > num = list?.Count ?? 0; // null이면 0반환, 오른쪽 값 사용
    > num
    0
    > // [2] 컬렉션 리스트가 null이 아니면 Count 속성의 값 사용
    > list = new List<string>();
    > list.Add("see you again)
    > num = list?.Count ?? 0; // null이 아니기 때문에 왼쪽 값 사용
    > num
    13