【发布时间】:2019-01-30 04:39:45
【问题描述】:
所以我是 C# 的新手,我一直在通过将我的代码从 python 转换为 C# 来学习。现在我偶然发现的问题是:我如何捕获 CS7036 错误。它在 python 中称为“AttributeError”,如果您尝试实例化一个类,而没有所需数量的参数,就会发生这种情况。
public Vector Crossproduct(Vector other)
{
try
{
List<double> output = new List<double>()
{
Y* other.Z - other.Y * Z,0 - (X * other.Z- other.X * Z),X* other.Y - other.X * Y
};
Vector outputvector = new Vector(output);
return outputvector;
}
catch (Exception)
{
throw;
}
}
我用谷歌搜索了这个,发现这个错误几乎没有任何内容。这是微软 C# 文档的链接。Here 和 here.
我的问题不在于如何修复错误,而是如何捕捉它,所以我很清楚。
【问题讨论】:
-
既然这在 C# 中是可能的,所以没有必要在运行时捕获它!
-
CS7036 不是运行时抛出的异常。这是一个编译器错误。这就是你抓不到它的原因。
-
尝试在不提供参数的情况下实例化一个类,看看会发生什么。编译器不允许这样做。
-
为什么将无效参数传递给构造函数是有意义的?
-
非常感谢大家!正如我所说,我是 C# 的新手。这肯定会对我有很大帮助。
标签: javascript c#