我想在编译代码之前验证方程式,并防止其成功编译。因此仍在编辑器中。这是我想做的一个例子:
public static Matrix operator + (Matrix A, Matrix B)
{
if (A.length != B.length || A.width != B.width)
throw new InvalidOperationException("Matrix A must be the same size as matrix B");
// Do things
}
如果我编写C = A + B;
并进行编译,将抛出异常。我希望它在编译之前进行验证并在控制台中显示错误消息。
答案 0 :(得分:0)
无法实现您想要的。假设您允许用户输入具有任意尺寸的矩阵。然后,编译器已经完成了工作,无法知道用户选择的尺寸。因此,如果两个矩阵具有兼容的维,则编译器将无法验证。您可能可以编写一个执行静态代码分析并报告尺寸不匹配的分析器,但无法找到全部分析器,我怀疑编写一个分析器是否值得。
由编译器强制执行此行为的唯一方法是为每个维创建不同的类型。但我强烈建议您不要这样做。