ホームページ  >  記事  >  バックエンド開発  >  C# 学習記録: 高品質のコードの作成と組織の改善に関する提案 4-8

C# 学習記録: 高品質のコードの作成と組織の改善に関する提案 4-8

php是最好的语言
php是最好的语言オリジナル
2018-08-06 14:56:551432ブラウズ

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 が空かどうかを判断するには、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. readonly と const の使用方法

単純な違いは、const の方が効率的であり、readonly の方が柔軟であるということです

const はコンパイラ定数、readonly は実行時定数です

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 の構造は通常、関数内で値を代入するときに、各クラス オブジェクトに異なる readonly 値を持つことができますが、const は静的であるため、値はすべてのクラスで同じです。

C# 学習記録: 高品質のコードの作成と組織の改善に関する提案 4-8

#Book 上記の文では、いつも疑問がありましたが、クラスでの代入とコンストラクターでの代入の違いは何ですか? オンラインで見つけることができません。逆コンパイルされた IL コードは、次の違いだけです。変数定義の順番についてご存知でしたら教えてください。 。

7. 列挙型のデフォルト値として 0 を使用します。

私が理解しているのは、予期しない結果が発生する可能性があるため、必要がない場合は列挙型の値を変更しないでください

8. 列挙型要素には表示値を提供しないようにする

理由は上記と同じです

関連記事:

C#Learning記録: 高品質のコードを作成して改善するための提案 1-3

C# 学習記録: 高品質のコードを作成して改善するための提案 9-15

以上がC# 学習記録: 高品質のコードの作成と組織の改善に関する提案 4-8の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。