在以下代码中:
public class Foo
{
private object first;
object second;
public void Bar()
{
first = "1234";
second = "1234";
}
}
两个声明有什么区别?我是OOP的新手,想知道会有什么不同......
由于
答案 0 :(得分:2)
两个声明有什么区别?
没什么,因为这是C#。通常,如果在不使用访问修饰符的情况下在C#中声明任何内容,则相当于为该位置使用最私有的有效访问修饰符 1 。
是的,宣布
private object first;
相当于
object first;
就个人而言,我更喜欢明确关于访问修饰符 - 其他人更喜欢尽可能简洁。
1 此例外的一个例外是为属性的 part 指定访问修饰符。这必须比财产本身更私密;如果你没有在那里指定一个访问修饰符,它隐含的访问权限与属性本身相同。
答案 1 :(得分:0)
这将标记为重复,但无论如何我都会回答。
这两个都是您定义的类的实例变量。只有在创建此类的实例时,它们才会存在于内存中。
这两个变量之间没有区别。默认情况下,没有访问修饰符的类/结构成员是私有的,明确地说一个是私有的而不是使用修饰符是等价的,但最佳做法是始终指定应该允许成员/方法的访问