为了账号安全,请及时绑定邮箱和手机立即绑定

在C#中使用静态变量有什么用?什么时候用?为什么我不能在方法中声明静态变量?

在C#中使用静态变量有什么用?什么时候用?为什么我不能在方法中声明静态变量?

繁花不似锦 2019-07-26 15:29:13
在C#中使用静态变量有什么用?什么时候用?为什么我不能在方法中声明静态变量?我在C#中搜索过静态变量,但我仍然没有得到它的用途。另外,如果我尝试在方法中声明变量,它将不会授予我执行此操作的权限。为什么?我看过一些关于静态变量的例子。我已经看到我们不需要创建类的实例来访问变量,但这还不足以理解它的用途以及何时使用它。第二件事class Book{     public static int myInt = 0;}public class Exercise{     static void Main()     {         Book book = new Book();         Console.WriteLine(book.myInt); // Shows error. Why does it show me error?                                        // Can't I access the static variable                                         // by making the instance of a class?         Console.ReadKey();     }}
查看完整描述

3 回答

?
达令说

TA贡献1821条经验 获得超6个赞

一个static变量,股吧之类的所有实例中的价值。

示例未声明为静态:

public class Variable{
    public int i = 5;
    public void test()
    {
        i = i + 5;
        Console.WriteLine(i);
    }}public class Exercise{
    static void Main()
    {
        Variable var = new Variable();
        var.test();
        Variable var1 = new Variable();
        var1.test();
        Console.ReadKey();
    }}

说明:如果查看上面的示例,我只是声明int变量。当我运行此代码时,输出将是1010。这很简单。

现在让我们看一下静态变量; 我将变量声明为a static

静态变量的示例:

public class Variable{
    public static int i = 5;
    public void test()
    {
        i = i + 5;
        Console.WriteLine(i);
    }}public class Exercise{
    static void Main()
    {
        Variable var = new Variable();
        var.test();
        Variable var1 = new Variable();
        var1.test();
        Console.ReadKey();
    }}

现在,当我运行上面的代码时,输出将是1015。因此静态变量值在该类的所有实例之间共享。


查看完整回答
反对 回复 2019-07-26
?
慕斯王

TA贡献1864条经验 获得超2个赞

C#根本没有静态变量。您可以通过C#在特定类型定义中声明静态字段。静态字段是一种状态,与特定类型的所有实例共享。因此,静态字段的范围是整个类型。这就是为什么你不能在方法中声明静态字段的原因- 方法本身就是一个范围,方法中声明的项必须在方法的边界上不可访问。


查看完整回答
反对 回复 2019-07-26
  • 3 回答
  • 0 关注
  • 1164 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信