C# 在类中,实例变量和c中不带修饰符的变量有什么区别#

C# 在类中,实例变量和c中不带修饰符的变量有什么区别#,c#,oop,instance-variables,C#,Oop,Instance Variables,在以下代码中: public class Foo { private object first; object second; public void Bar() { first = "1234"; second = "1234"; } } 两种声明之间的区别是什么?我是OOP新手,想知道会有什么不同 谢谢 两种声明之间的区别是什么 没什么,因为这是C。一般来说,如果在C#中声明任何内容而不使用访问修饰符,则相当于对该位置1使用最私有的有效访问修饰

在以下代码中:

public class Foo
{
  private object first;  

  object second;

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

    second = "1234";
  }
}
两种声明之间的区别是什么?我是OOP新手,想知道会有什么不同

谢谢

两种声明之间的区别是什么

没什么,因为这是C。一般来说,如果在C#中声明任何内容而不使用访问修饰符,则相当于对该位置1使用最私有的有效访问修饰符

所以是的,宣布

private object first;
相当于

object first;
就我个人而言,我更喜欢明确的访问修饰符——其他人更喜欢尽可能简洁



1例外情况是为部分属性指定访问修饰符。必须比财产本身更私密;如果不在此处指定访问修饰符,则它与属性本身具有隐式相同的访问权限。

这将标记为重复,但我仍将回答

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


这两个变量之间没有区别。默认情况下,没有访问修饰符的类/结构成员是私有的,明确地说一个是私有的,而不使用修饰符是等效的,但最好的做法是始终指定成员/方法应允许的访问权限,这没有区别。它是隐式私有的,因为您没有声明访问修饰符。请参阅。翻到您学习该语言所使用的任何资源的下一页。这就是它告诉你的。“默认情况下,没有访问修饰符的属性是私有的”-1)应该像MSDN那样使用术语“成员”而不是“属性”;属性在c中完全是另一回事,2)读取时,只有类和结构成员默认为
private
,但您的答案没有明确说明这一点,这可能会导致问题。@Quantic为清晰起见进行了编辑。他没有引用枚举或接口,所以我认为我不需要具体说明。