gpt4 book ai didi

C#:限制方法参数中的类型(不是泛型参数)

转载 作者:太空狗 更新时间:2023-10-29 17:41:12 25 4
gpt4 key购买 nike

我想像下面这样编写一个函数

public void Foo(System.Type t where t : MyClass)
{ ... }

换句话说,参数类型是 System.Type,我想将允许的 Type 限制为派生自 MyClass 的类型>.

有什么方法可以在语法上指定它,或者 t 必须在运行时检查吗?

最佳答案

如果您的方法必须采用 Type 类型作为参数,则无法做到这一点。如果您对方法调用有灵 active ,您可以这样做:

public void Foo(MyClass myClass)

并通过调用 .GetType() 获取 Type

稍微扩展一下。 System.Type 是参数的类型,因此无法进一步指定应传递的内容。正如采用 1 到 10 之间的整数的方法一样,必须采用 int,然后进行运行时检查以确保正确遵守限制。

关于C#:限制方法参数中的类型(不是泛型参数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/885987/

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