В настоящее время я изучаю и изучаю встроенный C# Generic, но я борюсь с фактическим использованием метода после его создания.Доступ к общему методу недоступен
Я пробовал:
public class myTestClass
{
class example
{
public static DataTable LINQtoDataTable<T>(IEnumerable<T> data)
{
DataTable dt = new DataTable();
PropertyInfo[] objectProps = null; // Reflection
if (data == null) return null;
foreach (T record in data)
{
if (objectProps == null) objectProps = ((Type)data.GetType()).GetProperties();
foreach (PropertyInfo pi in objectProps)
{
Type collumnType = pi.PropertyType;
if ((collumnType.IsGenericType) && (collumnType.GetGenericTypeDefinition() == typeof(Nullable<>))) collumnType = collumnType.GetGenericArguments()[0];
dt.Columns.Add(new DataColumn(pi.Name, collumnType));
}
}
return dt;
}
}
example ex { get; set; }
public myTestClass()
{
this.ex = new example();
}
}
Но когда я (В # Форме C):
// Namespace area
myTestClass test;
// Main Method
test = new myTestClass();
test.LINQtoDataTable()
не придумать или существуют. Кто-нибудь может помочь мне? Я запутался, почему это не будет появляться, так как я public'd метод и инстанс класса он находится внутри :(
высоко оценили & спасибо заранее.
'LINQtoDataTable' является статическим методом внутри частного вложенного класса, поэтому' test.LINQtoDataTable' не будет работать. – rbm
Вам нужен он как статический класс (где параметр данных должен быть установлен), вы можете исследовать методы расширения бит :) – Icepickle