gpt4 book ai didi

c# - 如何在不使用关键字的情况下使用枚举实例化对象时编写更清晰的代码?

转载 作者:太空宇宙 更新时间:2023-11-03 17:07:48 25 4
gpt4 key购买 nike

我最近创建了一个类,它有一个以 3 个枚举作为参数的构造函数。在下面的示例中,这些枚举在对象本身中定义为 ObjectEnum 和 AnotherObjectEnum。

LongObjectName pt = new LongObjectName(
LongObjectName.ObjectEnum.EnumerationOne,
LongObjectName.ObjectEnum.EnumerationTwo,
LongObjectName.AnotherObjectEnum.EnumerationThree,
0.0);

我必须初始化其中的 8 个对象,我想将其压缩为更清晰的格式以供将来的编码人员使用。我想构建这段代码,以便我可以简化这个对象的声明——类似于 VB.NET 中的“with”。我必须实现 IDisposable 接口(interface)才能使用“using”命令。

理想情况下,我希望我的代码看起来像这样:

LongObjectName pt = new LongObjectName( 
ObjectEnum.EnumerationOne,
ObjectEnum.EnumerationTwo,
AnotherObjectEnum.EnumerationThree,
0.0);

有没有什么简单的方法可以像这样清理代码?提前致谢 - 这是我的第一个问题,因此欢迎提出建设性的批评。

最佳答案

您混淆了 using 关键字的两种用法。

您可以使用 using directive为任何类型创建别名;这与 IDisposable 无关。

例如:

using ObjectEnum = YourNamespace.LongObjectName.ObjectEnum;

(请注意,using 指令中的所有类型都必须使用命名空间名称进行完全限定。


using statement除了名称之外与 using 指令无关,用于处理 IDisposable

例如:

using (TransactionScope.BeginTransaction())
using (dataSet)
using (new SqlCommand("SQL", connection) {
//Do something useful
}

关于c# - 如何在不使用关键字的情况下使用枚举实例化对象时编写更清晰的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1650078/

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