c# 全局对象如何使用
时间: 2023-07-27 10:29:18 浏览: 59
在 C# 中,全局对象可以用静态类和单例模式来实现。
静态类是一种特殊的类,它只包含静态成员(字段、方法、属性、构造函数等),并且不能被实例化。静态类的成员在程序启动时就会被初始化,并且在整个程序的生命周期中都是可用的。因此,可以将需要全局访问的对象封装在一个静态类中,从而实现全局对象的功能。
以下是一个将数据库连接对象封装在静态类中的示例:
```csharp
public static class DatabaseConnection
{
private static SqlConnection connection;
static DatabaseConnection()
{
connection = new SqlConnection("connectionString");
connection.Open();
}
public static SqlConnection GetConnection()
{
return connection;
}
}
```
Singleton(单例)模式是一种经典的设计模式,它可以确保一个类只有一个实例,并提供一个全局访问点。使用单例模式可以将一个对象的生命周期限制在整个程序的生命周期内,并且可以在任何地方访问该对象。
以下是一个使用单例模式实现全局配置对象的示例:
```csharp
public sealed class AppConfig
{
private static readonly AppConfig instance = new AppConfig();
private AppConfig() {}
public string DatabaseConnectionString { get; set; }
public static AppConfig Instance
{
get
{
return instance;
}
}
}
```
在上面的示例中,AppConfig 类被声明为 sealed,这意味着它不能被继承。它有一个私有的构造函数,确保只有一个 AppConfig 实例可以被创建。全局访问点是静态属性 Instance。该类中的属性 DatabaseConnectionString 可以在程序的任何地方进行访问和修改。