在一个类中,c#中实例变量和不带修饰符的变量之间的区别是什么

时间:2017-05-01 18:39:07

标签: c# oop instance-variables

在以下代码中:

public class Foo
{
  private object first;  

  object second;

  public void Bar()
  {
    first = "1234";

    second = "1234";
  }
}

两个声明有什么区别?我是OOP的新手,想知道会有什么不同......

由于

2 个答案:

答案 0 :(得分:2)

  

两个声明有什么区别?

没什么,因为这是C#。通常,如果在不使用访问修饰符的情况下在C#中声明任何内容,则相当于为该位置使用最私有的有效访问修饰符 1

是的,宣布

private object first;

相当于

object first;

就个人而言,我更喜欢明确关于访问修饰符 - 其他人更喜欢尽可能简洁。

1 此例外的一个例外是为属性的 part 指定访问修饰符。这必须比财产本身更私密;如果你没有在那里指定一个访问修饰符,它隐含的访问权限与属性本身相同。

答案 1 :(得分:0)

这将标记为重复,但无论如何我都会回答。

这两个都是您定义的类的实例变量。只有在创建此类的实例时,它们才会存在于内存中。

这两个变量之间没有区别。默认情况下,没有访问修饰符的类/结构成员是私有的,明确地说一个是私有的而不是使用修饰符是等价的,但最佳做法是始终指定应该允许成员/方法的访问