【发布时间】:2021-12-06 07:51:52
【问题描述】:
按照我在谷歌上找到的一个例子,我尝试了
我需要在我的cs文件中写入什么才能让ITuple在那里知道吗?我用谷歌搜索了它,没有找到任何东西(也许我是盲人,但是)。
using System.Runtime.CompilerServices;
public class CMatrix
{
public (CVector r, CVector u, CVector f, CVector t) m_data;
public CVector this[int i]
{
get => ((ITuple) m_data)[i];
set => ((ITuple) m_data)[i] = value;
}
}
结果:“类或名称空间名称 'ITuple' 未知”。
我的目标框架是“.NET Framework 4.7.2”。
提示:问题是“我如何使它起作用”,而不是“为什么我的解决方案不起作用”。我发布它只是为了说明我想要实现的目标。
【问题讨论】:
-
ITuple在System.Runtime.CompilerServices命名空间中。您可能正在使用不包含ITuple的旧运行时版本。你的目标框架是什么? -
即使您有权访问
ITuple- 它的索引器是只读的,因此您的设置器将无法工作。 -
问题实际上是“我如何使它工作”,而不是“为什么我的解决方案不起作用”。我的目标框架是“.NET Framework 4.7.2”。
-
你在哪里找到这个例子?你能分享一个链接吗?
-
问题是你不能让它工作,特别是设置器,因为
ValueTuple(可变的,Tuple是不可变的)不提供按索引设置项目的方法。当然,你可以做显而易见的事情 (if (i == 0) ...)