gpt4 book ai didi

c# - C# 代码的构建问题 - CS0012 - IsLongModifier

转载 作者:行者123 更新时间:2023-12-03 22:00:21 25 4
gpt4 key购买 nike

我有一段非常简单的代码,在编译时出现以下错误

Error CS0012 The type 'IsLongModifier' is defined in an assembly that is not referenced. You must add a reference to assembly 'Microsoft.VisualC, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

下面是代码的相关部分

grid.get_NumericalCell(rowIndex, "Bench2");

在 get_NumericalCell 函数调用上出现红色波浪线。

该方法可从使用 C++/C# 实现的第三方库中获取。下面是方法的签名

double get_NumericalCell(int rowIndex, string columnName);

如果我添加对 Microsoft.VisualC 的引用,错误就会消失。

IsLongModifier class 上的引用文档对于解释我为什么面临这个问题没有多大帮助。

有人可以解释为什么我需要引用 Microsoft.VisualC.IsLongModifier - 我没有看到我在代码中引用它的位置。

最佳答案

第三方库可能引用了 Microsoft.VisualC

get_NumericalCell() 的签名可能在 C++ 中进行了重写,如下所示:

__gc class Grid 
{
double get_NumericalCell(int i, string columnName) {}
double get_NumericalCell(long l, string columnName) {}
};

这将被编译为如下所示的 IL:

[...] float64 get_NumericalCell(int32 i, ...) [...]
[...] float64 get_NumericalCell(int32 modopt([Microsoft.VisualC]Microsoft.VisualC.IsLongModifier) l, ...) [...]

添加可选修饰符 IsLongModifier 来区分两个签名,否则这两个签名将是相同的。这会隐藏 C# 中的方法,但编译器可能仍需要对 Microsoft.VisualC 的引用。您可以通过GetOptionalCustomModifiers()检查反射方法。

关于c# - C# 代码的构建问题 - CS0012 - IsLongModifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38383629/

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