>  기사  >  백엔드 개발  >  C# 학습 기록: 고품질 코드 작성 및 조직 제안 개선 4-8

C# 학습 기록: 고품질 코드 작성 및 조직 제안 개선 4-8

php是最好的语言
php是最好的语言원래의
2018-08-06 14:56:551375검색

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);
}

5. 값이 null인지 확인하려면 int를 사용하는 것이 좋습니다.

값 유형이 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;

6. 읽기 전용 및 const를 사용하는 방법

간단한 차이점은 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는 정적이므로 모든 클래스의 값은 모두 동일합니다

C# 학습 기록: 고품질 코드 작성 및 조직 제안 개선 4-8

책에 위의 문장이 있습니다. 항상 궁금한 점이 있었는데, 클래스 내 할당과 생성자 내 할당의 차이점은 무엇인가요? 디컴파일된 IL 코드는 단지 변수 정의 순서의 차이점을 아시는 분은 알려주세요. .

7. 열거형의 기본값으로 0을 사용하세요

예기치 않은 결과가 발생할 수 있으므로 필요하지 않은 한 열거형 값을 변경하지 마세요

8. Value

이유는 위와 같습니다

관련글 :

C# 학습기록 : 고품질 코드 작성 및 제안사항 개선 및 정리 1-3

C# 학습기록 : 고품질 코드 작성 및 개선 및 제안 정리 9-15

위 내용은 C# 학습 기록: 고품질 코드 작성 및 조직 제안 개선 4-8의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.