微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否有 C# 速记将值转换为其方法的返回类型?

如何解决是否有 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-conversionsuser-defined-conversion-operatorstype-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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?