我有一个包含对象列表的自定义控件。该控件由可视化设计器实例化,然后在代码中进行配置。该控件是一个显示实体列表的网格。
我有一个像这样的初始化方法。
public void Initialise(ISession session, Type type, ICollection<IPersistentObject> objs)
IPersistentObject是一个接口。但是,当我想分配一个实现IPersistentObject的集合时,这不起作用。
所以我把它改成了这个。
public void Initialise<T>(ISession session, Type
我有一个包含FrameworkElements的列表,我想创建一个名为MoveToTop的扩展方法。所要做的就是接受属于该列表一部分的项,并将其移动到列表的开头。我知道这可以在不使用扩展方法的情况下完成,但我希望将其实现为扩展方法。
我在尝试找出用于创建接受泛型参数的扩展方法的语法时遇到了问题。我知道这是不正确的,但如果有人能给我一个如何做到这一点的想法,我将不胜感激。
public static class Extensions
{
public static void MoveToTop(this ICollection<T> sequence)
{
基本上,我使用ORM (特别是LLBLGen)为我所有的表创建实体对象。所有这些实体类型都继承自一个基类(或者实际上是一组基类)。我想创建一个扩展方法,它接受基类的列表并返回一些字符串,但我想传入继承的类型,而不是显式强制转换。
例如,我有一个如下所示的函数:
string GetString(List<EntityBase2> list); // also tried List<IEntityCore>, which the base class implements
我想像这样传递它:
List<ProductEntity> products = ...
在MSDN ()上,它说:
泛型方法可以出现在泛型或非通用类型上。需要注意的是,方法不是泛型的,仅仅因为它属于泛型类型,甚至是因为它具有形式参数,其类型是封闭类型的泛型参数。只有当方法有自己的类型参数列表时,它才是泛型的。在以下代码中,只有方法G是泛型的。
M不是所有意图和目的都是通用的吗?如果你在T型的某些例子上调用方法M,M只能有T型的输入和输出参数,使用这样的非神经型方法M会有什么问题吗?
class A
{
T G<T>(T arg)
{
T temp = arg;
//...
return temp;
在EF代码中,首先使用下面的代码,我可以基于每个实体类型创建非泛型DbSets:
foreach (var entry in _dbContext.ChangeTracker.Entries<BaseEntity>())
{
BaseEntity entity = entry.Entity;
Type type = entity.GetType();
var set = _dbContext.Set(type);
}
有没有办法将它们创建为通用的DbSet?
请告诉我如何确定在继承期间传递给参数泛型的类型。
public abstract class BaseEntity
{
}
public class DogEntity : BaseEntity
{
}
public interface IAnimal
{
}
public abstract class Animal<TEntity> : IAnimal
where TEntity : BaseEntity
{
}
public class Dog : Animal<DogEntity>
{
}
我只有狗实体类型,我需要得到DogEntity
Type
我有一个由E-R designer生成的实体类,我对它做了一些修改。这是声明:
public abstract partial class Preference<T> : EntityObject, IPreference<T>
然后还有另一个实体类,声明如下:
public partial class BoolPref : Preference<bool>
所以BoolPref继承自Preferences<bool>。现在我有了这个生成的属性:
public ObjectSet<Preference<object>> P
我在尝试将泛型函数递归地用于反序列化算法时遇到了问题。我根据变量的值从XElement加载变量。但是,如果它们不是原语,我必须递归地对该对象执行相同的操作。但是,该对象与正在处理当前对象的类型不同。例如,如果我有
class someObject
{
otherObject obj = new otherObject();
}
class otherObject
{
int someInt = 123;
}
反序列化程序递归地进入另一个对象。然而,问题是我必须动态地更改泛型方法的类型(即。我不知道它在编译时会是什么类型)。算法如下:
public stati
Im应该创建一个返回任何列表的最大值的方法,我想这是一个通用的方法。但是我不明白参数,有人能解释一下吗?我还做了一个迭代器,我将在解决方案中使用这个迭代器来运行列表,但是当我创建迭代器的一个实例时,这个方法会给我以下错误:"#nameofclass不能从静态上下文中引用“,那么我如何在这里创建一个实例?(由于某种原因它应该是静态的)我会感激任何帮助!
public static <T> int maks(List<T> list, Comparator<? super T> c)
{
// return max in a list
}
我想要创建一个类类型的集合,我只想要类型,而不是对象--它们都是惰性的。
IBuilderType
那么如何编写列表->
public List<typeof(IBuilderType)> Builder;
为实现这一目标:
var listBuilder = new List<typeof(IBuilderType)>
{typeof (BasicCategoryBuilder)};
我希望基本限制可以添加到这个列表中的类型(类的范围)。
我有一个对象,它可以是不同枚举类型的列表,也可以是非枚举类型(普通类实例)。
要验证对象是否为列表很容易:
myobject is IList
现在我可以验证list元素的类型了:
(myobject as IList)[0].GetType().IsEnum
但是,如果我还没有元素,如何验证列表的元素是否为枚举呢?
if (myobject is IList)
{
if ((myobject as IList).Count > 0)
{
if ((myobject as IList)[0].GetType().IsEnum)
r
我有大约15个表,我正在工作,我正在为这些表创建审计报告。所有这些表都有一个UserId列,该列使用进行更改的上一个用户的Id进行更新。我希望创建一个存储库方法,该方法允许我传递用于该方法的表实体,然后只返回要在审计页面上使用的UserIds列表,而不是允许用户在UserId搜索字段中键入审计所需的任何内容,我只想提供一个下拉列表,其中包含传递给该方法的表中的userIds。
我在想这样的事情:
var ids = _repo.GetUserIds(//table entity here, unsure how to declare in signature);
我正在建模一个活动流,其中不同的实体类型(列表、页面、注释)可以有不同的活动(注释,页面添加到列表,注释添加到页面,等等)。我马上就到了,但是下面的代码会出现Type '"request"' cannot be used to index type 'ActivityStream[EntityType]["activities"][ActivityType]'错误。为什么我不能索引这个呢?奇怪的是,使用服务的代码确实工作正常。
export interface ActivityStreamsService {
addAct
我创建了一个方法,它接受枚举,并在字典中转换它,其中每个int都与枚举的名称(作为字符串)相关联
// Define like this
public static Dictionary<int, string> getDictionaryFromEnum<T>()
{
List<T> commandList = Enum.GetValues(typeof(T)).Cast<T>().ToList();
Dictionary<int, string> finalList = new Dictionary<int, s
这是一个通配符的问题.
我的目的是创建一个包含具有泛型类型的类的列表,其中包含扩展示例:
这就是这个结构:
public class Event<T extends ActionType>{
}
public abstract class ActionType{
}
//**many** classes that extends ActionType class
这是一个包含从ActionType扩展的类的列表
private List<Event<ActionType>> list = ArrayList<>();
所以我有这个CopyOnWriteArrayList,其中GameObject是一个接口。在整个程序中,我将一些不同类型的GameObjects添加到这个数组列表中。我想知道是否有可能遍历这个数组列表并检查GameObject是否是给定对象的实例(使用方法中的参数)。下面是我的大体意思:
public <T extends Object> List<T> getObjectsOfType(Class<T> type) {
ArrayList<T> list = new ArrayList<T>();
for (Obje
我已经为所有的基类型以及泛型数组、ICollection(Of T)和Dictionary(Of String,T)创建了一个MyFunc扩展(在模块扩展中):
Function MyFunc(Of T)(a() As T) As String
Function MyFunc(Of T)(collection As ICollection(Of T)) As String
Function MyFunc(Of T)(dict As Dictionary(Of String,T)) As String
在大多数情况下,我直接使用函数(即“测试”.MyFunc()),但是有一些后期绑定的情况,我正
我有一个BL,由一个通用存储库和一些实体类型的特定实现组成(我的DAL是一个实体框架5模型)。存储库几乎所有的功能都使用System.Data.Entity.DbContext的Set()方法。我有一些表达式,比如获取实体T的兄弟元素,这些表达式不会对Set(类型entityType)的结果起作用。
在某个时刻,我有一个非泛型DbEntityEntry的实例。该实体的类型为Object。当我使用GetType()时,我得到了正确的实体类型。我知道要使用Repository中的函数获取相关实体。有没有一种方法可以从非泛型DbEntityEntry中做到这一点。
我试过了:
public Repo
在使用IEnumerable时,我试图避免多个枚举。我知道我可以使用LINQ的.ToList()并完成它,但这可能是很多不必要的列表创建。我想:
检查并查看基础类型是否为列表,如果返回该实例,则为
.ToList()并返回新列表
我的想法是用一些类似于:
public void Fee()
{
var list = new List<string>(); // I want to retrieve this instance in Foo
Foo(list);
}
public void Foo(IEnumerable<T> enume
我读过有关泛型类型的文档,我知道要使用它,但我在“读取”两个方法时遇到了问题。
我使用"toArray()“和"asList()”,但是我不知道如何编写方法解算类型。
示例1
public Iterator<E> iterator();
public Iterator<String> iterator();
示例2
public E get(int location);
public String get(int location);
示例3(这里是我不明白的地方)
public static <T> List<T> asList
在联合中,假设你有class Explosion:MonoBehavior,使用GetComponent你可以轻松地
List<Transform> result = new List<Transform>();
foreach (Transform t in here)
{
if ( t.GetComponent<Explosion>() )
result.Add( t );
}
该列表现在包含任何立即活动或不活动的儿童,其中有“爆炸”部分。
我想做一个延伸,这样做,沿着
List<Explosion> =