因此,我还是C#编程的新手,所以我确定自己在这里犯了一个非常简单的错误。我正在使用Visual Studio制作控制台应用程序,并且在此应用程序中,我试图找到数字的平方根。我有.NET框架。
这是我程序的顶部:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Linear
{
    public static class Math
    {
        static void Main()
        {
          // program in here
        }
     }
}


在程序中,我有一行如下:

double distanceA = Math.Sqrt(totalA);


因此,当我使用VS构建程序时,它告诉我'Linear.Math'不包含'Sqrt'的定义。
为什么这样说呢?如何给它定义“ Sqrt”?

最佳答案

因为您将类命名为Math,所以Visual Studio和编译器不知道您是在引用自己的类(Linear.Math)还是.NET Math类(System.Math)。

您可以通过完全限定名称来指定使用.NET Math类。

double distanceA = System.Math.Sqrt(totalA);


这指定您要使用System.Math。您可以在using指令后添加以下内容,从而在整个文件中使用它:

using Math = System.Math;


这称为using alias directive,它将告诉编译器Math引用System.Math

请注意,在创建自己的类时,通常不建议使用冲突的名称。

关于c# - C#Math.Sqrt()无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26726833/

10-15 06:51