静态关键字(static):实例化、用法和最佳实践

一.理解静态关键字(static)

Static 是一个关键字,使得它在静态类首先被使用时仅在内部实例化一次。

二.实例化类

在没有静态的类中,我们必须实例化才能使用,但是我们可以实例化多次,并在每个实例上存储不同的数据。

namespace BasicCsharp
{
    public class Customer
    {
        public string? name { get; set; }
        public string? email { get; set; }
        public string? phone { get; set; }
        public string computer = "";
        public Customer()
        {
            computer = System.Environment.MachineName;
        }
    }
}

这是获取客户信息的客户类。

三.使用静态和非静态方法

我们将 System.Environment.MachineName; 移到不同的类并使用静态和非静态来查看差异。

namespace BasicCsharp
{
    public class CompName
    {
        public string getName()
        {
            return System.Environment.MachineName;
        }
    }
}

四.使类静态化

在创建这个公共类之后,我们现在可以在 Customer 类中实例化该类并使用 getName 方法。

namespace BasicCsharp
{
    public class Customer
    {
        public string? name { get; set; }
        public string? email { get; set; }
        public string? phone { get; set; }
        public string computer = "";
        public Customer()
        {
            CompName computerName = new CompName();
            computer = computerName.getName();
        }
    }
}

我们可以在实例化 CompName 后使用 getName() 方法。使用此方法,我们应该遵循 OOP 原则,并且如果实例化更多 CompName 类,还可以存储不同的数据。

但是我们可以将 CompName 类设为静态,将 getName 方法设为静态,那么我们将能够使用它们而无需手动实例化。

namespace BasicCsharp
{
    public static class CompName
    {
        public static string getName()
        {
            return System.Environment.MachineName;
        }
    }
}

将 CompName 类设为静态,并将 getName 方法设为静态

namespace BasicCsharp
{
    public class Customer
    {
        public string? name { get; set; }
        public string? email { get; set; }
        public string? phone { get; set; }
        public string computer = "";
        public Customer()
        {
            computer = CompName.getName();
        }
    }
}

我们可以简单地调用 getName 方法而无需实例化 CompName 类。静态类将在内部实例化,因为它只实例化一次。它们都共享数据和方法。
并且当你将类设为静态时,new 是被禁止的。

静态类是应用程序中所要使用的固定值和固定方法。所以,如果它不是固定方法或值,它就不应该是静态类。

这个静态类不会受到继承或多态的影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢.锋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值