>  기사  >  백엔드 개발  >  C# 고급 프로그래밍(2) - 핵심 C#에 대한 자세한 설명

C# 고급 프로그래밍(2) - 핵심 C#에 대한 자세한 설명

黄舟
黄舟원래의
2017-03-20 11:22:231239검색

변수 초기화 및 범위

초기화

C#에는 변수를 사용하기 전에 초기화되었는지 확인하는 두 가지 방법이 있습니다.

    • 변수는 명시적으로 초기화되지 않은 경우 생성 시 기본값이 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에 내장되어 있습니다. 프레임워크 중간.

Decimal은 .NET Formework에 내장된 유형이 아니며 성능 저하를 초래합니다.

bool 유형은 0을 사용하여 false를 나타낼 수 없으며 0이 아닌 경우 true를 나타냅니다.

모든 내장 유형은 객체 유형을 상속합니다.

문자열의 불변성: 위 코드의 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. 이름 및 키워드

생략

속성과 메소드 사용

객체가 객체처럼 보이는 경우 속성을 사용하여 이를 나타냅니다. 즉,

    • 클라이언트 의료 개혁은 그 가치를 읽을 수 있으므로 쓰기 전용 속성을 사용하지 않는 것이 가장 좋습니다.

    • 이 값을 읽는 데는 오랜 시간이 걸리지 않습니다.

    • 부정적인 영향이 없어야 합니다.

    • 속성은 순서에 관계없이 설정할 수 있습니다.

    • 속성을 ​​순차적으로 읽어도 동일한 효과를 가져야 합니다.


분야별 활용

필드는 항상 비공개여야 합니다.

2016-05-07 22:29:18

위 내용은 C# 고급 프로그래밍(2) - 핵심 C#에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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