Day 3 C#语言基础 1

本文全面介绍了C#编程语言的基础知识,包括语言元素、命名规范、类型与变量、类与对象、结构、数组、接口、枚举、委托、特性等核心概念。详细解析了值类型与引用类型的区别,以及如何创建新类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

目录

C#语言元素

C#命名规范

类型和变量

C#值类型

引用类型

创建新类型

分支结构

循环结构

装箱与拆箱


C#是一种面向对象语言。C#源于C语言系列,采用通用的类型系统。所有C#类型均继承自一个根【Object】类型。

C#语言元素

程序结构

了解C#语言中的关键组织概念:程序、命名空间、类型、成员、程序集

类型和变量

了解C#语言中的值类型,引用类型和变量

表达式

表达式是在操作数和运算符的基础上构造而成。表达式生成的是值。

语句

语句用于表示程序的操作

类和对象

类是最基本的C#类型。对象是类实例,类是使用成员生成的。

结构

与类不同,结构是属于值类型的数据结构

数组

数组是一种数据结构,其中包含许多通过计算索引访问的变量

接口

接口定义了可由类和结构实现的协定。结构可以包含方法、属性、事件和索引器。接口不提供所定义的成员的实现代码,仅指定必须由实现接口的类或结构提供的成员

枚举

枚举类型是包含一组已命名常量的独特值类型

委托

委托类型标识对具有特定参数列表和返回类型的方法的引用。通过委托,可以将方法视为可分配给变量并可作为参数传递的实体。委托类似于其他一些语言中的函数指针概念,但与函数指针不同的是,委托不仅面向对象,还类型安全

特性

使用特性,程序可以指定关于类型、成员和其他实体的附加声明性信息。

C#命名规范

1.用Pascal规则来命名属性、方法、事件和类名。

Pascal规则是指名称中单词的首字母大写,如    EmployeeSalary

2.用Camel规则来命名成员变量、局部变量和方法的参数。

Camel命名法第一个单词的首字母小写,其他单词的首字母大写   比如  plainTextEnconding。

3.接口的名称一般以大写的I做前缀

4.类的命名,用名词或者名词短语来命名类名。

5.方法的命名,一般将其命名为动宾短语

6.代码分块,所有的成员变量声明在类的顶端,用给一个换行把他和方法分开。同时可以使用成对的#region...#endregion折叠

7.方法的书写规范   方法命名要见名知意,省略多余的注释,方法功能尽量单一

类型和变量

C#有两种类型,值类型和引用类型。值类型的变量直接包含数据,而引用类型的变量则存储对数据(称为“对象”)的引用。

对于引用类型:两个变量可以引用同一个对象,因此对一个变量执行的运算可能会影响另一个变量引用的对象

对于值类型:每个变量都有自己的数据副本,因此对一个变量执行的运算不会影响到另一个变量(ref和out参数的变量除外)

C#值类型

C#的值类型又细分为 简单类型,枚举类型,结束类型 可以为null的值类型。

简单类型:

   有符号的整型:sbyte、short、int、long。

   无符号的整型:byte、ushort、uint、ulong。

   Unicode字符:char

   IEEE浮点: float、double

   高精度小数:decimal

   布尔:bool

枚举类型:

   格式为enum E{......}的用户定义类型

结构类型;

   格式为 struct S{......}的用户定义类型

可以为null的值类型

   值为null的其他所有值类型的扩展

引用类型

C#引用类型又细分为 类类型,接口类型,数组类型 委托类型。

类类型:

   其他所有类型的最终基类:Object

   Unicode字符串: string

   格式为class C{......}的用户类型

接口类型:

   格式为 interface I {......}的用户定义类型

数组类型:

   一维和多维,例如 int [ ] 和int [ ,]

委托类型:

   格式为 delegate int D(......)的用户定义类型


创建新类型

C#程序使用类型声明创建新类型。类型声明指定新类型的名称和成员。 用户可定义以下五种类型:Class类型,结构类型,接口类型,枚举类型和委托类型

    Class类型定义包含数据成员(字段)和函数成员(方法,属性及其他)的数据结构。类类型支持单一继承和多形性,即派生类可以       扩展     和专门针对基类的机制

    Struct类型定义包含数据成员和函数成员的结构,与class类型相似,不过与类不同的是,结构类型是值类型,通常不需要进行怼分配。结构类型不支持用户指定的继承,并且所有结构类型均隐式继承自类型Object

    Interface类型将协定定义为一组已命名的公共函数成员。实现Interface的class或Struct必须提供接口函数成员的实现代码。Interface可以继承自多个基接口,class和struct可以实现多个接口。

    delegate类型表示引用包含特定参数列表和返回类型的方法。通过委托,可以将方法视为可分配给变量并可作为参数传递的实体。委托类同于函数式语言提供的函数类型。委托也类似于其他一些语言中的函数指针概念,但与函数指针不同的是,委托不仅面向对象,还类型安全。

class,struct,interface,和delegate类型全都支持泛型,因此可以使用其他类型对他们进行参数化。

enum类型是一种包含已命名常量的独特类型。每个enum类型都有一个基础类型(必须是八种整数类型之一)。enum类型的值集与基础类型的值集相同。

分支结构

if---else    if--else if----

switch----case

循环结构

for循环

while循环

do-while循环

装箱与拆箱

C#采用统一的类型系统,因此任意类型的值都可视为Object。每种C#类型都直接或间接的派生自object类类型,而object是所有类型的最终基类。只需将值视为类型object,即可将引用类型的值视为对象。通过执行装箱和取消装箱(拆箱)操作,可以将值类型的值视为对象。

using System;
class BoxingExample
{
    static void Main()
    {
        int i = 123;
        object o = i;    // Boxing
        int j = (int)o;  // Unboxing
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值