Почему я не могу сделать этого с неявными типами в C#?

Мой кузен является серьезным парень FileMaker . Он, кажется, делает большой и вырастил мелкую фирму вокруг этого. По-видимому, FileMaker является межплатформенной системой Mac/ПК для быстрой разработки приложений...

, Возможно, что-то как этот повысится с бизнес-набором продвинутого пользователя/RAD?

Microsoft может иметь историю намеренного уничтожения систем баз данных как это. Я слушал Горное интервью.Net одно время с Les Pinter , где он утверждал, что когда-то слышал, что ведущее должностное лицо Microsoft сказало, что каждая копия FoxPro, который продает затратам Microsoft тысячи в потерянных роялти SQL. И где FoxPro сегодня? Официально, это, был end-of-lifed в марте 2007. Таким образом, как это добиралось от выдающегося положения для сдавания в аренду? Ну, Les говорит, что Microsoft получила его и изнурила его непосильным трудом нарочно.

я обычно не хорошо разбираюсь в теориях заговора, но это действительно находит отклик у послужного списка Microsoft с той эры.

Так или иначе, мелочи в стороне, которым я верю, будет больше инструментов базы данных стиля RAD... Они уполномочивают неразработчиков и позволяют разработчикам решать определенные типы проблем очень быстро. Я испытываю неприязнь к использованию их для крупных проектов, который, к сожалению, располагается каскадом - маленькие проекты имеют тенденцию расти со временем. Так в результате я только использую их для очень tinest вещи.

Что касается долгосрочных последствий... Ну, я видел сценарии, где они не масштабировались хорошо, и все те фрагментированные решения начали много походить на технический долг. На самом деле возможно сцепить Доступ до бэкенда SQL Server, который решает много проблем.

, Вероятно, самая большая/самая странная вещь, которую я сделал с Доступом, писала систему EDI с нуля. Для тех из Вас, кто работал непосредственно с EDI, Вы знаете то, о чем я говорю. Какая глупая идея, которая была. Мои проблемы здесь имели отношение больше к VBA, чем Доступ, хотя - я не забываю просто действительно нуждаться в интерфейсах и не иметь их.

я также использовал его для генерации кода назад, прежде чем вещи как Codesmith были доступны. Это генерировало бизнес-объекты (CRUD и некоторые другие основы) для Классика ASP. Это на самом деле работало потрясающее.

6
задан skaffman 11 December 2010 в 21:21
поделиться

2 ответа

x.GetType () - это вызов метода, оцениваемый во время выполнения. Поэтому его нельзя использовать для концепции времени компиляции , такой как тип переменной. Я согласен с тем, что иногда было бы очень удобно сделать что-то подобное (указав тип времени компиляции переменной в качестве аргумента типа в другом месте), но в настоящее время вы не можете. Я не могу сказать, что регулярно скучаю по нему.

Однако вы можете делать:

var x = new { a = "foobar", b = 42 };
var y = new[] { x };
var z = y.ToList();

Вы также можете написать простой метод расширения для общего создания списка:

public static List<T> InList<T>(this T item)
{
    return new List<T> { item };
}

(Выберите другой назовите, если хотите:)

Затем:

var x = new { a = "foobar", b = 42 };
var y = x.InList();

Как показывает Марк, на самом деле это вовсе не обязательно должен быть метод расширения. Единственное, что важно, это то, что компилятор может использовать вывод типа для определения параметра типа для метода, чтобы вы не

12
ответ дан 8 December 2019 в 13:00
поделиться

Есть способы сделать это с помощью универсального метода:

public static List<T> CreateList<T>(T example) {
    return new List<T>();
}
...
var list = CreateList(x);

или путем создания списка с данными , а затем его очистки ...

6
ответ дан 8 December 2019 в 13:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: