gpt4 book ai didi

c# - 这个奇怪的属性 VB 语法的 c# 等价物是什么?

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

我发现以下语法作为 VB.NET 属性,我正在尝试将其转换为 C#,但我不确定如何完成。

Public Property SomeText(ByVal someEnumThing as SomeEnum) As String
Get
Select Case someEnumThing
//figure out what string to return
End Select
End Get
Set(ByVal Value as String)
Select Case someEnumThing
//figure out what string to set
End Select
End Set
End Property

我以前从未见过这样的特性,有什么想法吗?

最佳答案

我猜您指的是该属性的参数。好吧,据我所知,C# 只支持索引器使用它们,索引器不能有名称(例如 this[SomeEnum someEnumThing] {})。

如果你想获得类似的行为,你可以创建一个带有索引器属性的辅助类,并使用它来公开属性的“名称”:

public class YourClass {
public struct SomeTextProperty {
private readonly YourClass owner;

internal SomeTextProperty(YourClass owner) {
this.owner = owner;
}

public string this[SomeEnum someEnumThing] {
get {
return owner.GetSomeText(someEnumThing);
}
set {
owner.SetSomeText(someEnumThing, value);
}
}
}

public SomeTextProperty SomeText {
get {
return new SomeTextProperty(this);
}
}

private string GetSomeText(SomeEnum someEnumThing) {
// implementation to get it
}

private void SetSomeText(SomeEnum someEnumThing, string value) {
// implementation to set it
}
}

关于c# - 这个奇怪的属性 VB 语法的 c# 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1406708/

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