C# 将对象类型作为参数传递
我想替换下面的函数,在我的项目中,这个函数几乎完全相同,只有不同的对象类型。我想做的是将对象类型作为参数传递C# 将对象类型作为参数传递,c#,object,types,parameter-passing,C#,Object,Types,Parameter Passing,我想替换下面的函数,在我的项目中,这个函数几乎完全相同,只有不同的对象类型。我想做的是将对象类型作为参数传递 private void reloadBooks() { var books = session.Query.All<Book>(); boklist = new System.ComponentModel.BindingList<Book>(books.ToList<Book>()); lstBooks.ItemsSourc
private void reloadBooks()
{
var books = session.Query.All<Book>();
boklist = new System.ComponentModel.BindingList<Book>(books.ToList<Book>());
lstBooks.ItemsSource = boklist;
}
private void reloadBooks()
{
var books=session.Query.All();
boklist=newsystem.ComponentModel.BindingList(books.ToList());
lstBooks.ItemsSource=boklist;
}
我在想这样的事情:
private void getRecordsOfType(object objObject)
{
System.ComponentModel.BindingList<objObject.GetType()> recordList = new System.ComponentModel.BindingList<objObject.GetType()>();
var records = session.Query.All<objObject.GetType()>();
recordList = new System.ComponentModel.BindingList<objObject.GetType()>(records.ToList<bjObject.GetType()>());
return recordList;
}
private void getRecordSoftType(对象对象对象)
{
System.ComponentModel.BindingList记录列表=新建System.ComponentModel.BindingList();
var records=session.Query.All();
recordList=new System.ComponentModel.BindingList(records.ToList());
返回记录列表;
}
但这似乎不起作用,我得到以下信息:
“运算符”请尝试以下操作:
private System.ComponentModel.BindingList<T> getRecordsOfType<T>()
{
System.ComponentModel.BindingList<T> recordList = new System.ComponentModel.BindingList<T>();
var records = session.Query.All<T>();
recordList = new System.ComponentModel.BindingList<T>(records.ToList<T>());
return recordList;
}
private System.ComponentModel.BindingList getRecordsOfType()
{
System.ComponentModel.BindingList记录列表=新建System.ComponentModel.BindingList();
var records=session.Query.All();
recordList=new System.ComponentModel.BindingList(records.ToList());
返回记录列表;
}
泛型正是您想要的:
private BindingList<T> getRecordsOfType<T>()
{
var records = session.Query.All<T>();
return new System.ComponentModel.BindingList<T>(records.ToList<T>());
}
private BindingList getRecordsOfType()
{
var records=session.Query.All();
返回新的System.ComponentModel.BindingList(records.ToList());
}
使用泛型类型参数:
private BindingList<T> getRecordsOfType<T>()
{
var records = session.Query.All<T>();
recordList = new System.ComponentModel.BindingList<T>(records.ToList<T>());
return recordList;
}
private BindingList getRecordsOfType()
{
var records=session.Query.All();
recordList=new System.ComponentModel.BindingList(records.ToList());
返回记录列表;
}
您正在尝试使用泛型-您正在尝试将objObject.GetType()
作为泛型类型参数传递。但是类型参数是在编译时计算的,而不是在执行时。您也应该使方法泛型化。