gpt4 book ai didi

c# - 在接口(interface)或变量上定义类约束

转载 作者:行者123 更新时间:2023-11-30 14:24:54 25 4
gpt4 key购买 nike

我遇到这样一种情况,我需要要求变量属于特定类型,但它 实现特定的自定义接口(interface)。具体来说,我想要求该对象是一个 FrameworkElement,但它也实现了一个自定义接口(interface),称之为 IExample

有什么方法可以从 IExample 的声明或实际变量中做到这一点?我正在设想这样的事情(伪语法):

public FrameworkElement<IExample> ChildView { get; set; }

或者我想将其声明为对接口(interface)本身的约束:

public interface IExample : FrameworkElement

这些在 C# 中是否可行?是否有替代方案可以完成同样的事情?基本上我只想要求实例是 FrameworkElement 的子类,它也实现了 IExample

最佳答案

您可以在类级别使用泛型约束,然后将其应用于属性,因为属性本​​身不能直接定义约束。

public class SomeClass<T> where T : FrameworkElement, IExample {
public T ChildView { get; set; }
}

或者在界面上

public interface ISomeInterface<T> where T : FrameworkElement, IExample {
T ChildView { get; set; }
}

或者在方法级别,如果你想将一个类型作为参数,该类型既符合 FrameworkElement 类型又符合IExample

public void SomeMethod<T>(T someParameter) where T : FrameworkElement, IExample 
{ /*do something with instance someParameter*/)

关于c# - 在接口(interface)或变量上定义类约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40496577/

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