С# Строка и строка. Почему Visual Studio обрабатывает их по-разному?
Если я создаю обычное консольное приложение с нормальной основной точкой входа следующим образом
using System;
namespace ConsoleApp
{
public class Program
{
public static void Main(string[] args)
{
// do stuff
}
}
}
затем выберите его в визуальной студии, все в порядке.
![введите описание изображения здесь]()
Однако, если я напишу код следующим образом:
using System;
namespace ConsoleApp
{
public class Program
{
public static void Main(String[] args)
{
// note the capital S in String
}
}
}
тогда все не в порядке....
![введите описание изображения здесь]()
Кто-нибудь знает, почему он не поднимает строку [], но доволен строкой [], пожалуйста?
edit: Извлечение из комментариев, похоже, является ошибкой в Visual Studio 2012 и 2013. Предположительно, он также присутствует в более ранних версиях, но, похоже, был исправлен в VS2015. Это не проблема сама по себе, и, как отмечено, код все еще компилируется и исполняется с помощью строки [] или String [] Мне было бы интересно узнать причину ошибки в VS. Я бы предположил, что окно редактора свойств не Using System;
?
Ответы
Ответ 1
Вы уверены, что ваш пример, который использует String
, действительно компилируется?
Нижний регистр String
- это ключевое слово, эквивалентное использованию System.String
; поскольку ваш пример не импортирует пространство имен System
, я ожидаю, что это вызовет ошибки компиляции, которые могут привести к тому, что свойства проекта не смогут определить ваш метод Main.
Добавьте директиву using System;
в файл кода или явно используйте System.String
вместо String
, чтобы сделать тип известным компилятору.