Что такое внутреннее свойство set в c #? - PullRequest
39 голосов
/ 25 августа 2011

Я только что натолкнулся на неизвестную для меня концепцию c #. Может кто-нибудь сказать мне, какова цель внутреннего набора свойств? Каково его использование? Я знаю, что для работы в сборке используется внутреннее ключевое слово.

Ответы [ 7 ]

60 голосов
/ 25 августа 2011

Если у вас есть свойство с внутренним аксессором set (и public get accessor), это означает, что код в сборке может читать (получать) и записывать (устанавливать) свойство, но другой код может только читать его.

Вы можете получить вышеуказанную информацию, прочитав о модификаторе внутреннего доступа , модификаторе открытого доступа и свойства .

Также вы можете прочитать о Ограничение доступности Accessor .

9 голосов
/ 25 августа 2011

Свойства в C # 2.0

В C # 2.0 вы можете установить доступность get и set.

Код ниже показывает, как создать приватную переменную с внутренним набором и публичным get. Свойство Hour теперь может быть установлено только из кода в том же модуле (dll), но доступ к нему может получить весь код, использующий модуль (dll), содержащий класс.

// private member variables
private int hour;

// create a property
public int Hour
{
  get { return hour; }
  internal set { hour = value; }
}
8 голосов
/ 25 августа 2011

Предположим, вы разрабатываете API для использования другими программистами. В этом API у вас есть объект Foo, у которого есть свойство Bar. Вы не хотите, чтобы другие программисты устанавливали значение Bar, когда они ссылались на вашу сборку, но вам нужно самим установить значение из своего API. Просто объявите свойство так:

public class Foo
{
   public string Bar { get; internal set; }
}
3 голосов
/ 25 августа 2011

с учетом объявленного свойства public string MyString {get; internal set;} это означает, что

  • вы можете прочитать значение свойства из любого места внутри вашего приложения (public string MyString)
  • но вы можете только записать новое значение для свойства из внутри сборки , в которой оно объявлено - или из дружественных сборок.(internal set;)
2 голосов
/ 25 августа 2011

Если установщик свойства помечен модификатором внутреннего доступа, только классы, находящиеся в сборке, могут устанавливать свойство.

public string MyProperty { get; internal set; }
1 голос
/ 25 августа 2011

Это конструкция, которая позволяет устанавливать значение свойства только с помощью кода в той же сборке.

1 голос
/ 25 августа 2011

Это означает, что свойство может быть установлено только кодом, который находится в той же сборке, что и класс, разделяющий свойство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...