2014-12-17 2 views
1

Я новичок в Программе! Игнорируйте, если это глупый вопрос. Но оставьте комментарий.Может ли объект иметь спецификатор доступа?

Можно ли объявить спецификатор доступа к экземплярам объектов в 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); 
    } 
} 
+1

Спецификатор по умолчанию для членов класса является 'private '. Но что вы подразумеваете под спецификатором, например? –

+1

Вы уже объявили один, 'public'. См. [Модификаторы доступа MSDN] (http://msdn.microsoft.com/en-us/library/ms173121.aspx) – Sayse

+1

Посмотрите [MSDN описание модификаторов доступа C#] (http://msdn.microsoft.com). /en-us/library/ms173121.aspx) –

ответ

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 
{...} 
+1

«private - это модификатор, например» - 'private' является модификатором для члена типа, а не для конкретного экземпляра' Person'. – Dennis

+0

@ Dennis: Я изменил свое слово, я хотел использовать слово допроса, но да, лучше сказать член типа. Спасибо :) –

2

по умолчанию для классов является внутренним, а это означает, что они могут быть доступны только по видам в той же сборке. Если класс не содержится внутри другого класса, он также может быть общедоступным, и в этом случае он доступен любому типу. Если он объявлен внутри другого класса, он также может быть защищен, доступный только содержащему классу или его подклассам, закрытый, доступный только содержащемуся классу, общедоступный, свободно доступный или защищенный внутренний, то есть доступный объявляющим классом, его подклассы или типы в одной и той же сборке. Значение по умолчанию для вложенных классов является приватным. Член (свойство, поле или событие) также может быть закрытым (по умолчанию), общедоступным, защищенным, внутренним или защищенным внутренним.

+1

Он не говорит о классах, а о предметах. Трудно понять, потому что те, кто понял концепцию, даже не подумают об этом. –

+0

Да, вы правы. –

+0

OP четко обозначенные типы и их экземпляры. – Dennis

Смежные вопросы