Вы можете попробовать это.
private static String readFile(String pathname) throws IOException {
File file = new File(pathname);
StringBuilder fileContents = new StringBuilder((int)file.length());
try (Scanner scanner = new Scanner(file)) {
while(scanner.hasNextLine()) {
fileContents.append(scanner.nextLine() );
}
return fileContents.toString();
}
}
Этот код будет читать все строки из текстового файла и выдавать нас как одну строку в качестве возвращаемого объекта.
Я имел пару раз, где мне понравилась бы способность сделать это, да.
Однако включенный синтаксис был бы довольно ужасен, и достаточно редко полезно, что я думаю, что предпочитаю просто сосать его и идти с общими методами.
Вот один пример, где было бы удобно для меня, если это будет возможно.
var settings = new Settings();
int timeout = settings<int>["CacheInMinutes"];
Где Настройки загружают XML-файл переменных конфигурации.
Это, по сравнению с:
var settings = new Settings();
int timeout = int.Parse(settings["CacheInMinutes"]);
Действительно не большая часть различия, но эй, я все еще предпочел бы универсальный индексатор.
Нет.
Общие методы имеют смысл, потому что они воплощают некоторую (универсальную) операцию, которая может разумно быть применена к различным типам.
Но свойства только имеют смысл как исключительно названные значения с определенным содержанием. 'Универсальные свойства', как Вы предлагают, действительно только суммы к подобно названным свойствам с другой подписью и другим содержанием.
Если бы по некоторой причудливой причине Вы решили желание ее то Вы могли бы отсортировать фальшивки ее с методами:
public class Thing
{
Dictionary<Type, object> xDict = new Dictionary<Type,object>();
public void set_X<T>(T x)
{
xDict[typeof(T)] = x;
}
public T get_X<T>()
{
return (T)xDict[typeof(T)];
}
}
То, почему Вы хотели бы, является совершенно другим разговором, все же. Обычно имеет больше смысла запускаться с чего-то, что Вы хотите сделать, чем некоторый способ, которым Вы хотите сделать это.
Без уничтожающего варианта использования, нет. Можно уже достигнуть того же самого с парой общих методов, должны Вы нуждаться в нем.