gpt4 book ai didi

c# - C# 中的泛型和访问 T 的静态成员

转载 作者:可可西里 更新时间:2023-11-01 08:08:11 26 4
gpt4 key购买 nike

我的问题是关于 C# 以及如何访问静态成员的……好吧,我真的不知道如何解释它(哪种问题对问题不好,不是吗?)我只会给你一些示例代码:

Class test<T>{
int method1(Obj Parameter1){
//in here I want to do something which I would explain as
T.TryParse(Parameter1);

//my problem is that it does not work ... I get an error.
//just to explain: if I declare test<int> (with type Integer)
//I want my sample code to call int.TryParse(). If it were String
//it should have been String.TryParse()
}
}

谢谢你们的回答(顺便说一句,问题是:我如何解决这个问题而不出错)。这对您来说可能是个简单的问题!


编辑:谢谢大家的回答!

虽然我认为 try - catch 短语是最优雅的,但根据我使用 vb 的经验,我知道它可能真的很糟糕。我用过一次,运行一个程序大约需要 30 分钟,后来只需要 2 分钟就可以计算,因为我避免了 try - catch。

这就是为什么我选择 switch 语句作为最佳答案的原因。它使代码更复杂,但另一方面我认为它相对较快且相对易于阅读。 (虽然我仍然认为应该有更优雅的方式......也许在我学习的下一门语言中)


如果您有其他建议,我仍在等待(并愿意参与)

最佳答案

问题是 TryParse 没有在任何地方的接口(interface)或基类上定义,因此您不能假设传递到您的类中的类型将具有该功能。除非你能以某种方式限制 T,否则你会经常遇到这种情况。

Constraints on Type Parameters

关于c# - C# 中的泛型和访问 T 的静态成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19843/

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