Size: a a a

2020 August 14

S

Sergey Trofimov in CODE BLOG / C#
Думаю ничего в этом нет такого, конструктор сам по себе ж ничего не значит, а тип не видно будет где не надо. Ну т.е. твой конструктор все равно будет ограничен областью видимости типа
источник

S

Sergey Trofimov in CODE BLOG / C#
Даже не задумывался над этим. Но поля ты не сделаешь паблик, если тип ниже стоит, компилятор не даст
источник

A

Artemko in CODE BLOG / C#
Ага , спасибо)
источник

VB

Vladislav Bardin in CODE BLOG / C#
Artemko
Насколько корректно делать конструктор выше по доступности , чем сам класс ?
Вопрос в том зачем. Во-первых, конструктор предназначен для того чтоб коректно создать екземпляр класса извне, то есть уде подразумевается, что к нему должен быть доступ из вне. Во-вторых, если ты сделаешь конструктор private или protected, ты к нему просто не сможешь обратиться, а тогда возникает вопрос зачем он вообще нужен? Поэтому, обычно конструктор делают public, в редких случаях internal.
источник

A

Artemko in CODE BLOG / C#
Спасибо за пояснения
источник

AM

Artur Mustafin in CODE BLOG / C#
Sergey Trofimov
Даже не задумывался над этим. Но поля ты не сделаешь паблик, если тип ниже стоит, компилятор не даст
покажи пример
источник

AM

Artur Mustafin in CODE BLOG / C#
Vladislav Bardin
Вопрос в том зачем. Во-первых, конструктор предназначен для того чтоб коректно создать екземпляр класса извне, то есть уде подразумевается, что к нему должен быть доступ из вне. Во-вторых, если ты сделаешь конструктор private или protected, ты к нему просто не сможешь обратиться, а тогда возникает вопрос зачем он вообще нужен? Поэтому, обычно конструктор делают public, в редких случаях internal.
неверно к приватному конструктору прекрасно обращаться в самом классе в статичном констукторе, например если синглтон реализуешь
источник

VB

Vladislav Bardin in CODE BLOG / C#
Возможно
источник

AM

Artur Mustafin in CODE BLOG / C#
Artemko
Спасибо за пояснения
если будешь делать синглтон - придется сделать конструктор по умолчанию приватным
источник

VB

Vladislav Bardin in CODE BLOG / C#
но это скорее исключение чем правило.
источник

AM

Artur Mustafin in CODE BLOG / C#
Vladislav Bardin
но это скорее исключение чем правило.
это от вкуса зависит
источник

VB

Vladislav Bardin in CODE BLOG / C#
Ну зачем может понадобится приватный конструктор вне синглтона? я просто не представляю как его применить да и зачем..
источник

S

Sergey Trofimov in CODE BLOG / C#
Artur Mustafin
покажи пример
Какой пример? Если класс приватный или интернал, то поле типа такого класса ты паблик не сделаешь
источник

S

Sergey Trofimov in CODE BLOG / C#
Vladislav Bardin
Ну зачем может понадобится приватный конструктор вне синглтона? я просто не представляю как его применить да и зачем..
Чтобы удалить конструктор по умолчанию
источник

S

Sergey Trofimov in CODE BLOG / C#
И запретить создавать типы с помощью конструктора
источник

AM

Artur Mustafin in CODE BLOG / C#
Sergey Trofimov
Какой пример? Если класс приватный или интернал, то поле типа такого класса ты паблик не сделаешь
то есть ты говорил не про публичные поля в приватном классе?
источник

S

Sergey Trofimov in CODE BLOG / C#
Artur Mustafin
то есть ты говорил не про публичные поля в приватном классе?
Нет) поля уровнем доступа выше чем доступность типа этого поля
источник

AM

Artur Mustafin in CODE BLOG / C#
Sergey Trofimov
Нет) поля уровнем доступа выше чем доступность типа этого поля
все равно не понимаю...
источник

S

Sergey Trofimov in CODE BLOG / C#
internal class A{}

Public class B{
Public A a;
}
источник

S

Sergey Trofimov in CODE BLOG / C#
Так нельзя
источник