【发布时间】:2021-05-17 20:54:37
【问题描述】:
在 C# 中是否有用于将值转换为其方法的返回类型的简写?例如,在这个方法中,有没有一种简写的方法可以将 GetInt 的返回值转换为其返回类型“int”,而不是离散地输入“int”?
我知道这是一个非常简单的例子,你们中的许多人会说“把 (int) 放在那里会更容易”,但是对于我正在尝试做的一些事情来说,这将是非常好的语法糖是可能的。它与已经存在的“默认”关键字简写非常相似。
// Return type of SomeFunc cannot be changed by me
object SomeFunc();
public int GetInt()
{
object Value = SomeFunc();
// I know "Value" should be of type "int" here.
return ({ReturnType})Value;
}
【问题讨论】:
-
为什么首先使用
object?如果您知道类型,为什么不使用实际类型存储它? -
@user3163495 然后发布一个现实的例子。有有个隐式转换。如果返回类型和实际值之间存在隐式转换,则根本不需要转换。您可以为新类型创建隐式转换运算符。 object 但是,不能隐式转换为其他任何东西。如何将字符串或
Image转换为`int? -
@PanagiotisKanavos 这没有必要,因为我的问题不是要征求你对我是否应该这样做的意见。
-
@user3163495 相反,非常重要。同样,如果您可以使用隐式强制转换,您将不需要这样的功能。为什么不能使用隐式强制转换?因为您在这方面使用了最严格的类型 - 对象不能隐式转换为其他任何东西。编译器根本没有足够的信息来决定强制转换是否安全
-
Q
Is there shorthand in C# for casting a value to its method's return type?ANo.