4. TryParse가 Parse보다 낫습니다
다음 TryParse 메서드 정의
public static bool TryParse(string s, out Double result);
Parse는 변환이 실패하면 오류를 보고하지만 TryParse에는 변환 성공 여부를 확인하는 반환 값이 있습니다
string str1 = "abfc12"; if(double.TryParse(str1, out double dou1)) { Console.WriteLine(dou1); }
값 유형이 null이어야 하는 경우 -1과 같은 특수 값을 사용하여 int가 null인지 확인할 수 있습니다. int로 바꾸는 것이 가장 좋나요? 입력하고 null인지 확인하세요
Nullable<int> i1 = 4; // i2 和 i1 的定义方式一样 只是写法不同 下面的int?是一个语法糖 int? i2 = null; int i3 = 0; //int类型可以默认转为int?类型 i2 = i3; //int?类型需要强转成int类型,如果是null则变为0 i3 = (int)i2;
간단한 차이점은 const가 더 효율적이고 읽기 전용이 더 유연하다는 것입니다
const는 컴파일러 상수이고 읽기 전용은 런타임 상수입니다
const int constNum = 1; public string name; public int age; public FirstType() { name = "aa"; age = constNum; age = 1; } //使用以上代码测试,下面的编译成的IL代码 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldarg.0 IL_0009: ldstr "aa" IL_000e: stfld string CSharpSuggest.FirstType::name IL_0013: ldarg.0 IL_0014: ldc.i4.1 IL_0015: stfld int32 CSharpSuggest.FirstType::age IL_001a: ldarg.0 IL_001b: ldc.i4.1 IL_001c: stfld int32 CSharpSuggest.FirstType::age IL_0021: ret
13, 14, 15는 1a, 1b, 1c와 동일하므로 age = constNum; 및 age = 1이 동일하므로
const는 기본 유형, 열거 유형만 수정할 수 있습니다. 또는 문자열 유형에는 제한이 없습니다.
const는 기본적으로 정적이므로 static을 추가할 수 없습니다.
readonly 값은 일반적으로 생성자에서 서로 다른 읽기 전용 값을 가질 수 있지만 const는 정적이므로 모든 클래스의 값은 모두 동일합니다
책에 위의 문장이 있습니다. 항상 궁금한 점이 있었는데, 클래스 내 할당과 생성자 내 할당의 차이점은 무엇인가요? 디컴파일된 IL 코드는 단지 변수 정의 순서의 차이점을 아시는 분은 알려주세요. .
예기치 않은 결과가 발생할 수 있으므로 필요하지 않은 한 열거형 값을 변경하지 마세요
이유는 위와 같습니다
관련글 :
C# 학습기록 : 고품질 코드 작성 및 제안사항 개선 및 정리 1-3
C# 학습기록 : 고품질 코드 작성 및 개선 및 제안 정리 9-15
위 내용은 C# 학습 기록: 고품질 코드 작성 및 조직 제안 개선 4-8의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!