効率的で安全なコードの機能強化
これらは、関連資料の種類のメモリの割り当てと使用を引き起こすことなく、複製の種類の値を最小にし、したがって性能を向上することが意図されています
- 修飾子で引数には、指定されたパラメータは参照によって渡されますが、メソッドを呼び出すことによって変更されません。修飾子ソースパラメータ変化に適合するように添加。
- REFのための方法は、読み取り専用改質方法を示すが、参照により、その値を返し、返されたが、オブジェクトに書き込まれません。値を戻り値に指定された場合、次にREFを追加すると、読み取り専用修飾子ソースの変更と互換性があります。既存の読み取り専用修飾子REFのreturn文を追加すると、互換性のない変更です。これは、更新refに呼び出し側が読み取り専用修飾子を含むようにローカル変数を宣言が必要です。
- 読み取り専用構造体ステートメントは、構造不変を示すパラメータとして、そのメンバーの方法で渡さなければなりません。既存の構造体宣言に加え読み取り専用修飾子は、バイナリ互換性の変化です。
- refの構造体宣言、マネージメモリへの構造の直接アクセスのタイプを示す、と常にスタックを割り当てる必要があります。既存の構造体宣言にREF修飾子を追加し、互換性のない変更です。REF構造体は、クラスのメンバーである、また、ヒープ上に割り当て可能な他の場所のことはできません。 効率的なセキュリティコードを書きます
非末尾の名前付きパラメータ
あなたは見ていない、通常使用することができます。
デジタルの値はアンダースコアをリード
int型binaryValue = 0b_0101_0101。
プライベート保護されたアクセス修飾子
私的には、保護された:派生自己完結型のクラスを備えた現在のアセンブリのクラスまたはタイプへのアクセスを制限します
// Assembly1.cs
// Compile with: /target:library
public class BaseClass
{
private protected int myValue = 0;
}
public class DerivedClass1 : BaseClass
{
void Access() //正确方法
{
myValue = 5; //可以正常访问
}
void Method1()
{
var baseObject = new BaseClass();
// baseObject.myValue = 5; // because myValue can only be accessed by classes derived from BaseClass.
}
}
内部の保護:現在のタイプの自己完結型の集合または派生クラスへのアクセスを制限します
条件式のREF
ref var r = ref (arr != null ? ref arr[ 0 ] : ref otherArr[ 0 ]);