Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, skodnik, Вы писали: S>>Для чего понадобилось ДВА класса? L>Он один. Тот который с маленькой буквы — просто алиас для System.String. Зачем так сделали — не знаю.
Кстати, с этими алиасами не все чисто, например:
class App
{
public enum E : int//System.Int32 - не скомпилируется C# 2008 (3.5.30729.1)
{
x = 0
}
static void Main()
{
}
}
Здравствуйте, Warturtle, Вы писали:
L>>Он один. Тот который с маленькой буквы — просто алиас для System.String. Зачем так сделали — не знаю.
W>Кстати, с этими алиасами не все чисто, например:
W>
W>class App
W>{
W> public enum E : int//System.Int32 - не скомпилируется C# 2008 (3.5.30729.1)
W> {
W> x = 0
W> }
W> static void Main()
W> {
W> }
W>}
W>
W>- что довольно странно.
Да я и говорю, мутные они какие-то. Нафик сделали — непонятно.
Может nikov в курсах.
Здравствуйте, skodnik, Вы писали:
S>Для чего понадобилось ДВА класса?
Возможно, потому что многим людям куда принципиальнее писать ли string или String и ставить ли ';', чем программировать ли на императивном или ООП языке.
Здравствуйте, Lloyd, Вы писали:
L>ОТот который с маленькой буквы — просто алиас для System.String.
Маленькое уточнение: это алиас для System.String из mscorlib.
Если определить в своей программе тип System.String, то System.String будет означать его, а string — по прежнему System.String из mscorlib.
Здравствуйте, nikov, Вы писали:
L>>ОТот который с маленькой буквы — просто алиас для System.String.
N>Маленькое уточнение: это алиас для System.String из mscorlib. N>Если определить в своей программе тип System.String, то System.String будет означать его, а string — по прежнему System.String из mscorlib.
Это вроде как тоже не совсем верно: ведь можно же скомпилить программу на шарпе с /nostdlib, и тогда string будет означать нечно другое. Например, ниже представлен вполне валидный с точки зрения компилятора csc код:
var x = new string();
x.XXX = 0;
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, skodnik, Вы писали:
S>Для чего понадобилось ДВА класса? :shuffle:
Когда что-то не понятно, в первую очередь рекомендуется читать спецификацию:
4.2.4 The string type
...
The keyword string is simply an alias for the predefined class System.String.
Кстати, вот загадка для знатоков спецификации:
В каких местах кода нельзя заменить string на System.String, а в каких — нельзя заменить System.String на string? (случаи, когда они ссылаются на разные типы, а также, когда namespace System скрыт другим именем, не рассматриваем)