C#中的类是面向对象编程的核心概念之一。本篇博客将详细介绍C#类中的字段、常量、方法、构造器、对象初始化器、this
引用、属性、索引器、静态构造器、静态类、终结器以及类特性和修饰符。
类的字段
字段是类或结构体中存储数据的成员。
public class Person
{public string Name;private int age;
}
字段修饰符:
static
: 静态字段属于类,而非类的实例。- 访问权限修饰符:
public
,internal
,private
,protected
- 继承修饰符:
new
- 不安全代码修饰符:
unsafe
- 只读修饰符:
readonly
- 线程访问修饰符:
volatile
类的常量
常量是固定值,在编译时就已经确定。
public class Constants
{public const double Pi = 3.14159;
}
类的方法
方法用于执行动作或返回值。
public class Calculator
{public int Add(int a, int b){return a + b;}
}
方法修饰符:
static
: 静态方法可以在不创建类的实例的情况下调用。- 访问权限修饰符:
public
,internal
,private
,protected
- 继承修饰符:
new
,virtual
,abstract
,override
,sealed
- 分部方法修饰符:
partial
- 非托管代码修饰符:
unsafe
,extern
- 异步代码修饰符:
async
实例构造器
实例构造器用于初始化类的新实例。
public class Car
{public string Model;public Car(string model){Model = model;}
}
对象初始化器
对象初始化器允许在创建对象时设置字段或属性。
var car = new Car
{Model = "Tesla"
};
this引用
this
关键字引用当前类的实例。
public class Circle
{public float Radius { get; set; }public float Diameter{get { return Radius * 2f; }set { Radius = value / 2f; }}public Circle(float radius){this.Radius = radius; // 使用this来区分字段和参数}
}
属性
属性提供了访问和设置字段的受控方式。
public class Product
{private decimal _currentPrice;public decimal CurrentPrice{get { return _currentPrice; }set { _currentPrice = value; }}
}
索引器
索引器允许通过索引访问类的成员,类似于数组。
public class List<T>
{private T[] _items = new T[10];public T this[int index]{get { return _items[index]; }set { _items[index] = value; }}
}
静态构造器
静态构造器是一种特殊的方法,用于初始化类的静态成员。
public class Database
{private static readonly string ConnectionString;static Database(){// 初始化逻辑ConnectionString = "Server=myServer; Database=myDB;";}
}
静态类
静态类是一种只能包含静态成员的类,不能被实例化。
public static class MathUtils
{public static int Add(int a, int b) => a + b;
}
终结器
终结器类似于析构函数,用于释放对象占用的资源。
public class ResourceHandler : IDisposable
{public void Dispose(){// 清理资源}~ResourceHandler(){Dispose();}
}
类特性
类特性提供了关于类的元数据。
[Serializable]
public class MyClass
{// 类定义
}
类修饰符
public
: 类可以被任何其他类访问。internal
: 类只能在当前程序集内部访问。abstract
: 抽象类不能被实例化,通常作为其他类的基类。sealed
: 防止类被继承。static
: 静态类不能被实例化,并且只能包含静态成员。unsafe
: 允许类中使用不安全代码。partial
: 允许类的定义分散在多个文件中。
表达式体方法
表达式体方法是一种简写的Lambda表达式,使用胖箭头=>
。
public class Greeting
{public static string GetMessage(string name) => $"Hello, {name}!";
}
方法重载
方法重载允许类中有多个同名方法,只要它们的参数列表不同。
public class Calculator
{public int Add(int a, int b) => a + b;public int Add(int a, int b, int c) => a + b + c;
}
部方法
部方法允许在一个方法中定义另一个方法。
public partial class PartialClass
{partial void Execute();
}public partial class PartialClass
{void Execute(){// 实现细节}
}
重载构造器
构造器可以被重载,以提供多种初始化对象的方式。
public class Person
{public string Name { get; set; }public Person() { }public Person(string name){Name = name;}
}
解构器
解构器允许将对象的字段反向赋值给变量。
public class Person
{public string FirstName { get; set; }public string LastName { get; set; }public void Deconstruct(out string firstName, out string lastName){firstName = FirstName;lastName = LastName;}
}
通过本篇博客,你应该对C#中的类及其成员有了更深入的理解。类是构建面向对象程序的基石,合理使用这些特性可以使代码更加灵活和强大。希望这些知识点能帮助你在C#编程中更加得心应手。