C# 在C中作为参数传递索引器
当我通过引用将索引器作为参数传递时,代码中存在编译时错误 为什么索引器不能用ref或out关键字传递? 当我们为定义_indexer类的indexer的元素设置任何值时,向indexer封装的字段分配内存的机制是什么? 这是编译时错误 属性或索引器不能作为ref或out参数传递 索引器和属性是函数的语法糖。 我不确定我是否完全理解这个问题,但听起来你好像在问索引器如何根据索引值将存储的值分离到不同的内存中。简短的回答:没有。你必须在集合中自己做这件事,并获得函数。 索引器当前的实现方式,无论使用什么结果[x],都将覆盖LanguageUser 索引器和属性是函数的语法糖。 我不确定我是否完全理解这个问题,但听起来你好像在问索引器如何根据索引值将存储的值分离到不同的内存中。简短的回答:没有。你必须在集合中自己做这件事,并获得函数。 索引器当前的实现方式,无论使用什么结果[x],都将覆盖LanguageUser 为什么索引器不能用ref或out关键字传递 因为索引器是有效的方法。它不一定是内存中有地址的变量,您可以将引用传递给它 方法是使用临时局部变量:C# 在C中作为参数传递索引器,c#,properties,parameter-passing,ref,indexer,C#,Properties,Parameter Passing,Ref,Indexer,当我通过引用将索引器作为参数传递时,代码中存在编译时错误 为什么索引器不能用ref或out关键字传递? 当我们为定义_indexer类的indexer的元素设置任何值时,向indexer封装的字段分配内存的机制是什么? 这是编译时错误 属性或索引器不能作为ref或out参数传递 索引器和属性是函数的语法糖。 我不确定我是否完全理解这个问题,但听起来你好像在问索引器如何根据索引值将存储的值分离到不同的内存中。简短的回答:没有。你必须在集合中自己做这件事,并获得函数。 索引器当前的实现方式,无论使用
result[2] = "44000";//C#
string temp = result[2];
BestLanguage(ref temp);
result[2] = temp;
但是我要注意的是,您的方法并没有修改引用,所以根本不需要将其作为ref参数
为什么索引器不能用ref或out关键字传递
因为索引器是有效的方法。它不一定是内存中有地址的变量,您可以将引用传递给它
方法是使用临时局部变量:
result[2] = "44000";//C#
string temp = result[2];
BestLanguage(ref temp);
result[2] = temp;
但是我要注意的是,您的方法并没有修改引用,所以根本不需要将其作为ref参数 属性和索引器只是幕后的函数。不能像常规字段或变量那样获取对它们的引用。属性和索引器只是幕后的函数。不能以与常规字段或变量相同的方式获取对它们的引用。