对象可以有访问说明符吗?

时间:2014-12-17 07:48:25

标签: c# class object access-specifier

我是编程新手!如果这是一个愚蠢的问题,请忽略。但是发表评论。

是否可以在C#中为对象实例声明访问说明符? 或者是否有任何默认说明符?

class Person
{
    public int age;
}

class Program
{
    static void Square(Person a, Person b) // Here note down "a" and "b" are instances
    {
        a.age = a.age * a.age;
        b.age = b.age * b.age;
        Console.WriteLine(a.age+" "+b.age);
    }
}

2 个答案:

答案 0 :(得分:2)

类的默认值是内部的,这意味着它们只能由同一程序集中的类型访问。如果一个类不包含在其他类中,它也可以是公共的,在这种情况下,它可以被任何类型访问。如果它在其他类中声明,那么它也可以被保护,只能由包含类或其子类访问,私有,只能由包含类访问,公共,可自由访问或受保护的内部,意思是,由声明类可访问,它的子类或类型在同一个程序集中。嵌套类的默认值是私有的。 成员(财产,字段或事件)也可以是私有(默认),公共,受保护,内部或受保护的内部。

答案 1 :(得分:1)

从类中实例化时,可以通过修饰符定义其访问范围(此修饰符用于类型成员(引用))。

  

修饰符用于修改类型和类型成员的声明

请看以下示例:

1)

class Employee
{
    private Person person;  //private is modifier for person type member, not for Person class
}

2)

static void Square(Person a, Person b){...}   //The access scope for a and b is equal with method scope

例如,这不是实例修饰符:

public class Person
{...}