gpt4 book ai didi

c# - VB.Net WriteOnly 属性到 C#

转载 作者:行者123 更新时间:2023-11-30 21:56:44 25 4
gpt4 key购买 nike

我在 VB.Net 中将此类作为自定义控件的一部分编写。它允许我切换 3 个链接标签的状态,并使用 Text 属性设置每个标签的文本。这就是允许用户使用它做的所有事情。我可以毫无问题地转换 Enabled 属性和构造函数,但是我不确定这是转换 Text 属性的最佳方法。函数将采用 2 个参数,索引器将作用于 LabelExtender3,而不是像当前在 VB.Net 中那样作用于 Text。那么转换这样的东西的正确方法是什么?

Public Class LabelExtender3
Private lblTemp(2) As Label

Public WriteOnly Property Enabled As Boolean
Set(value As Boolean)
If value Then
lblTemp(0).ForeColor = Color.MediumBlue
lblTemp(1).ForeColor = Color.MediumBlue
lblTemp(2).ForeColor = Color.MediumBlue
Else
lblTemp(0).ForeColor = Color.SteelBlue
lblTemp(1).ForeColor = Color.SteelBlue
lblTemp(2).ForeColor = Color.SteelBlue
End If
End Set
End Property

Public WriteOnly Property Text(ByVal index As Integer) As String
Set(value As String)
lblTemp(index).Text = value
End Set
End Property

Friend Sub New(ByRef value1 As Label, ByRef value2 As Label, ByRef value3 As Label)
lblTemp(0) = value1
lblTemp(1) = value2
lblTemp(2) = value3
End Sub
End Class

最佳答案

您遇到了 VB.NET 具有而 C# 没有的功能:可索引属性。

更具体地说,C# 缺乏声明它们的能力,但它能够使用它们(这是在 C# 4.0 中添加的)并且可能仅限于 COM Interop 使用。

在这种情况下最好只创建一个方法:

public void SetText(int index, string value)
{
lblTemp[index].Text = value;
}

关于c# - VB.Net WriteOnly 属性到 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31272252/

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