gpt4 book ai didi

c# - 具有相同接口(interface)但属性类型不同的类

转载 作者:行者123 更新时间:2023-12-05 08:19:17 25 4
gpt4 key购买 nike

我想要这样的设计:

public interface IDifferentTypes
{
}

public class IntegerType : IDifferentTypes
{
public int value { get; set; }
}

public class StringType : IDifferentTypes
{
public string value { get; set; }
}

public class DateTimeType : IDifferentTypes
{
public DateTime value { get; set; }
}

但具有在接口(interface)中定义的属性“值”。

所以我可以这样调用:

IDifferentTypes someInt = GetSomeInt(); // GetSomeInt() returns a IntegerType object
Assert.AreEqual(5, someInt.value);

IDifferentTypes someString = GetSomeString(); // GetSomeString() returns a StringType object
Assert.AreEqual("ok", someString.value);

问题是每个实现的值类型都不同,处理这个问题的最佳方法是什么?

最佳答案

您可以定义一个通用接口(interface)(但它必须是一个属性,或者更严格地说,它不能是一个字段):

public interface IHasValue<T> {
T Value { get; }
}

T 是类型,占位符,如果你愿意的话,你可以这样做:

public class HasStringValue : IHasValue<string> {
public string Value { get; private set; }
}

关于c# - 具有相同接口(interface)但属性类型不同的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15836771/

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