C#方括号用于使用字符串访问对象
我不明白这个方括号,我必须创建的东西,这个代码行正在工作,只是为了测试C#方括号用于使用字符串访问对象,c#,.net,C#,.net,我不明白这个方括号,我必须创建的东西,这个代码行正在工作,只是为了测试 filetype = dataBandREP["VRZ.Parent.SIGNATUR"].ToString(); 方括号表示您正在引用一个集合,在该集合中,您需要“VRZ.Parent.signature”[]是以字符串作为参数的索引器。此代码: filetype=dataBandREP[“VRZ.Parent.signature”].ToString() 使用某种集合的索引器,引用对象,然后将其转换为字
filetype = dataBandREP["VRZ.Parent.SIGNATUR"].ToString();
方括号表示您正在引用一个集合,在该集合中,您需要“VRZ.Parent.signature”<代码>[]是以字符串作为参数的索引器。此代码:
filetype=dataBandREP[“VRZ.Parent.signature”].ToString()代码>
使用某种集合的索引器,引用对象,然后将其转换为字符串格式以填充filetype变量
这在数组和DataColumn
集合中非常常见。字符串索引器允许您基于(例如)列标题获取值,而不需要知道DataTable.Columns
集合中与该列关联的整数索引
调试时会出现不同的行为,因为“VRZ.Parent.signature”
作为字符串索引器的有效性已更改,可能是因为实际数据源的更改。这是假设您得到的是空引用或类似引用。如果不知道你会遇到什么样的例外情况,我们就无能为力了 C#可以重载运算符,包括方括号
public class Example
{
public string this[string s] // square bracket operator with string argument
{
get
{
return somethingToReturnString;
}
set
{
somethingToSetString = value;
}
}
public string this[int i] // square bracket operator with int argument
{
get
{
return somethingToReturnInt;
}
set
{
somethingToSetInt = value;
}
}
}
下面的语法也适用。。我的类是从某种类型的ReadOnlyDictionary“AttributeValue”派生的,它导出双值。当出现错误时,它会给用户一个错误框
找不到该值
public abstract class AttribDoubleReader: IReadOnlyDictionary<string, AttributeValue>
{
public double this[string key] => GetValue(key);
private double GetValue(string key)
{
if (TryGetValue(key, out AttributeValue value))
{
return value.AsDouble();
}
else
{
MessageBox.Show("ERROR: KEY "+ key + " NOT FOUND.");
throw new KeyNotFoundException();
}
}
}
公共抽象类AttribDoubleReader:IReadOnlyDictionary
{
public double this[string key]=>GetValue(key);
私有双GetValue(字符串键)
{
if(TryGetValue(键,out属性值))
{
返回值.AsDouble();
}
其他的
{
MessageBox.Show(“错误:KEY”+KEY+“未找到”);
抛出新的KeyNotFoundException();
}
}
}
[…]
是带有字符串的索引器。。。