如何解决是否有 C# 速记将值转换为其方法的返回类型?
在 C# 中是否有将值转换为其方法的返回类型的简写?例如,在这个方法中,是否有一种速记方式可以将 GetInt 的返回值强制转换为它的返回类型 'int',而不是离散地输入 'int'?
我知道这是一个非常简单的例子,你们中的许多人会说“把 (int) 放在那里更容易”但是如果这样的话,对于我正在尝试做的某些事情来说,这将是非常棒的语法糖是可能的。它与已经存在的“default”关键字简写非常相似。
def converging_list(val):
listzip = zip(range(val//2+1),reversed(range(val+1)),range(val))
lst = sum(([a,b] for i,a,b in listzip),[])[:val+1]
return lst
解决方法
有这样的功能吗? 我不知道。
你能以某种方式添加这样的语法糖吗? 可能是,但没有一个选项会比显式转换更简单。您可能会失去一些 IDE 功能。你可能会违背良好的做法。我想像反射、装饰器、动态类型、开关表达式等可能在这里有用。
隐式转换?您始终可以使用派生类隐式转换为其任何基类。一些有用的链接 - casting-and-type-conversions、user-defined-conversion-operators、type-testing-and-cast
如果你确定你的对象是安全的,你可以使用替代语法,它不会抛出异常,Value as int
归根结底,这些都不需要首先考虑,除非有一个用例可以帮助他们大事。语法糖甚至不接近 IMO 的用例,尤其是对于静态类型语言。
,我可以考虑使用泛型(它不适用于 int,但适用于自定义类型):
public class Foo { }
public static object Value = null;
public static T GetFoo<T>() where T : Foo
{
return (T)Value;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。