gpt4 book ai didi

c# - 在不知道类型的情况下将对象转换为泛型类

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:36 25 4
gpt4 key购买 nike

我有那个界面:

public interface IEntityWithTypedId<T>{
T Id { get; }
}

并且有两个类:

public abstract class EntityWithTypedId<TId> : IEntityWithTypedId<TId>{...}
public abstract class Entity : EntityWithTypedId<int>{...}

所以,我有这样的实体:

public class TestA : Entity
public class TestB : EntityWithTypedId<string>
public class TestC : EntityWithTypedId<byte>

现在我有一个对象并且需要将它转换为IEntityWithTypedId<T>我可以使用嵌套的 ifs 来做到这一点,检查 object 类型。但我正在寻找通用解决方案。

我需要获取 Id 值(作为字符串,所以我不关心 T 是什么)

示例:

var idString = ((IEntityWithTypedId<long>)object).Id.ToString();

这可能吗?

最佳答案

添加另一个接口(interface)

public interface IEntityStringId
{
String IDString { get; }
}

public interface IEntityWithTypedId<T> : IEntityStringId
{

}

然后转换到那个接口(interface):

var idstring = ((IEntityStringId)obj).IDString;

关于c# - 在不知道类型的情况下将对象转换为泛型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26410643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com