【发布时间】:2016-01-16 12:56:48
【问题描述】:
我确定以前有人问过这个问题,但我找不到我需要的答案。
我正在使用 C# 创建一个程序集,其中一个结构名为需要。我正在尝试执行以下操作:
internal struct need {
internal need how
{
get
{
return how;
}
}
internal need true
{
get
{
return true;
}
}
}
我想创建一个名为 true 的新属性。需要.true 显然 IDE 不喜欢这样,因为我正在尝试创建一个与关键字同名的属性。
显而易见的解决方法是将名称更改为其他名称,例如真实,但我的心告诉我,这不是我应该做的。
这真的让我的兴趣达到了顶峰。您理论上可以创建一个变量(或其他),并且程序集应该能够根据上下文和范围确定您所指的变量。如果我要说这样的话:(伪代码)
create int number
create need.int number
或者如果我做了类似的事情:
create int number // In the want struct
create int number // In the need struct
程序集根据上下文或范围确定我想要创建的类型应该没有问题。唯一的问题是 IDE 似乎没有使用正确的范围并且不允许我构建。
我试过了,true、need.true、this.true等都无济于事。
我确信让我的程序集确定它的“需要”结构中的“真”是什么对于它的功能来说是必不可少的,因为程序集需要能够在特定范围和上下文内使用它自己的真类型,不是任何语言或任何指定它的语言都指定它是什么。
我们如何做到这一点?
附:这些是属性的原因是我基本上可以将它们设为只读。如果你能告诉我如何将它们放在内部结构中并且只读......
【问题讨论】:
-
用真代替真怎么样
-
链接重复回答您的问题(使用
@)。旁注:大多数人可能会认为命名与保留字冲突的属性是一个糟糕的想法,但这完全是基于意见的,如果你从不向其他人展示你的 C# 代码是可以的。请确保您未来的 SO 问题与该问题没有直接关系,使用常规名称并遵循默认的 C# 命名约定(即对类/属性使用大写 -Need)