ホームページ  >  記事  >  バックエンド開発  >  C# 高度なプログラミング (2) - C# のコアを詳しく解説

C# 高度なプログラミング (2) - C# のコアを詳しく解説

黄舟
黄舟オリジナル
2017-03-20 11:22:231252ブラウズ

変数の初期化とスコープ

初期化

C#には、変数が使用前に初期化されていることを確認するための2つのメソッドがあります:

    • 変数が明示的に初期化されていない場合、これらの変数がフィールドである場合。が作成されます。デフォルト値は 0 です。

    • メソッドのローカル変数は、ステートメントで使用する前にコード内で明示的に初期化する必要があります。初期化前にその値が使用されると、エラーが報告されます。

スコープ

ローカル変数のスコープが競合する場合、CS0136エラーが報告されます。

フィールドがローカル変数と競合しているため、フィールドを非表示にし、このキーワードを使用して非表示のインスタンスフィールドにアクセスし、静的フィールドには object.fieldname を使用します。

定数

定数の特徴:

    • 定数は宣言時に初期化する必要があり、値を指定した後の変更は許可されません。

    • 定数の値はコンパイル時の計算で使用する必要があり、変数から値を抽出することはできません。

    • 定数は常に静的であり、static キーワードを使用して変更することはできません。

定数の利点:

    • 読みやすい

    • 変更が簡単

    • 間違い

事前定義されたデータ型

値型と参照型

概念と格納方法の違いについては、第1章を参照してください。

参照型

オブジェクトを作成するには、 new キーワードを使用する必要があります。参照型を別の参照型に割り当てると、アドレスが変更されるだけであり、そのアドレスも変更されます。例:

         Test x,y;

      x testX = new Test();

      y testY = x;

      testX.value =1;    //这条语句执行后testX与testY的value属性的值都会为

CTS 型

C# によって認識される基本的な事前定義型は C# には組み込まれていませんが、.NET Framework に組み込まれています。

Decimal は .NET Formework の組み込み型ではないため、パフォーマンスの低下を引き起こします。

bool 型では、0 を使って false を表したり、0 以外で true を表すことはできません。

すべての組み込み型は Object 型を継承します。

文字列の不変性:上記のコードのtestXとtestYが文字列型の場合、testXが指す文字列が変わるとマネージドヒープに新しい文字列が作成されてそれを指し、testYはそれを指すことになります。指す値は変更されません。

フロー制御

条件文

if 、else if 、else。

switch文

case文の値は定数式でなければならず、変数は使用できません。

与C++的区别:激活了前一个case不会自动激活后一个case,且每一个case必须用break否则报错;可以把字符串作为测试变量。

可以使用goto "标签"经行跳转。

case为空则不需要break。

循环

for 与 while的区别:for适合可预测次数的循环,while适合不可预测次数的循环。

foreach

要实现foreach的遍历,类中就必须实现IEnumerable接口。

foreach中不能改变每一项的值。

跳转语句

goto

break

跳出当前循环

continue

跳过此次循环

return

退出当前方法

枚举

一旦代码编辑好,枚举就成为基本类型。

名称空间(命名空间)

与文件或组件不同,名称空间是一种逻辑组合,而不是物理组合。

一般名称空间可接受的格式为CompanyName.ProjectName.StstemSection。

名称空间别名的语法:

using slias = NamespaceName;

命名空间修饰符为 “::” 。

 1 //using System; 
 2 using TestSystem = System; 
 3  
 4 namespace 命名空间别名 
 5 { 
 6     class Program 
 7     { 
 8         static void Main(string[] args) 
 9         {
 10             TestSystem::Console.WriteLine("This is a C# Progam");
 11             TestSystem.Console.ReadKey();
 12         }
 13     }
 14 }

命名空间别名演示

预编译

#if #elif 支持一组逻辑运算符“!”、“==”、“!+”、“||”。

C#编程规则

标识符规则

    • 可以包含数字字符,但是它们他们必须以字母或下划线开头。

    • 不能使用C#关键字作标识符。

用户约定

规则应该是一个正确的决策,而不是一种束缚。


    1. 命名约定

Pascal:名称空间、类、函数名。

Camel:类中的字段(最好加“_”为前缀能更直观的知道这是个字段)、方法的参数。


    1. 名前のスタイル

名前/命名スタイルは、できるだけ一貫している必要があります。


    1. ネームスペースの名前

ネームスペースは、.NET が共有アセンブリ内のオブジェクト名を区別する唯一の方法です。

Microsoft では、次の名前空間を使用することをお勧めします: d04661e771feadb793ae73b35fbaae73.72f679de98f4cda0c0a9d332c4b5adaa 少し

  1. 属性とメソッドの使用法

    1. オブジェクトがオブジェクトのように見える場合は、属性を使用してそれを表現します。は:
    クライアントはその値を読み取ることができます。書き込み専用の属性は使用しないことをお勧めします。

値を読み取るのにそれほど時間はかかりません。

マイナスの影響があってはなりません。

    • プロパティは任意の順序で設定できます。

    • プロパティを順番に読み取っても、同じ効果が得られます。

    • フィールドの使用法

    • フィールドは常にプライベートである必要があります。

    • 2016-05-07 22:29:18

以上がC# 高度なプログラミング (2) - C# のコアを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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