Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#类中的多个返回值_C#_Winforms - Fatal编程技术网

C#类中的多个返回值

C#类中的多个返回值,c#,winforms,C#,Winforms,类MyFunctions MyFunctions MyFormulas = new MyFunctions(); 我需要这样的东西。返回1类下的2个值。这可能吗?您有几个问题: 您的返回类型定义错误:将数组([])附加到类型(double),而不是方法 您的数组大小为1。里面很难装两件东西。我把它改成了2 现在工作代码是: { public double Rectangle[](double Length, double Width) {

类MyFunctions

MyFunctions MyFormulas = new MyFunctions();  

我需要这样的东西。返回1类下的2个值。这可能吗?

您有几个问题:

  • 您的返回类型定义错误:将数组(
    []
    )附加到类型(
    double
    ),而不是方法
  • 您的数组大小为1。里面很难装两件东西。我把它改成了2
现在工作代码是:

    {
        public double Rectangle[](double Length, double Width)
        {

            double[] Rectangle=new double[1];

            double AreaOfRectangle = Length * Width;
            double PerimeterOfRectangle = 2 * (Length + Width);

            Rectangle[0]=AreaOfRectangle;
            Rectangle[1]=PerimeterOfRectangle;

            return Rectangle;
        }
   }
可以这样称呼:

public double[] Rectangle(int Length, int Width)
{

    double[] rect = new double[2];

    double areaOfRectangle = Length * Width;
    double perimeterOfRectangle = 2 * (Length + Width);

    rect[0] = areaOfRectangle;
    rect[1] = perimeterOfRectangle;

    return rect;
}
public class SpecialRectangle
{
    double AreaOfRectangle { get; set; }
    double PerimeterOfRectangle { get; set; }
}

public SpecialRectangle Rectangle(double Length, double Width)
{
    return new SpecialRectangle() { AreaOfRectangle = Length * Width, PerimeterOfRectangle = 2 * (Length + Width) };
}
在其他情况下,您可能需要一个
Tuple
实例、自定义类或结构实例作为返回类型,或者一个
out
参数

类似的内容也是一个选项(使用自定义类
SpecialRectangle
):

可以这样称呼:

public double[] Rectangle(int Length, int Width)
{

    double[] rect = new double[2];

    double areaOfRectangle = Length * Width;
    double perimeterOfRectangle = 2 * (Length + Width);

    rect[0] = areaOfRectangle;
    rect[1] = perimeterOfRectangle;

    return rect;
}
public class SpecialRectangle
{
    double AreaOfRectangle { get; set; }
    double PerimeterOfRectangle { get; set; }
}

public SpecialRectangle Rectangle(double Length, double Width)
{
    return new SpecialRectangle() { AreaOfRectangle = Length * Width, PerimeterOfRectangle = 2 * (Length + Width) };
}

您有一些问题:

  • 您的返回类型定义错误:将数组(
    []
    )附加到类型(
    double
    ),而不是方法
  • 您的数组大小为1。里面很难装两件东西。我把它改成了2
现在工作代码是:

    {
        public double Rectangle[](double Length, double Width)
        {

            double[] Rectangle=new double[1];

            double AreaOfRectangle = Length * Width;
            double PerimeterOfRectangle = 2 * (Length + Width);

            Rectangle[0]=AreaOfRectangle;
            Rectangle[1]=PerimeterOfRectangle;

            return Rectangle;
        }
   }
可以这样称呼:

public double[] Rectangle(int Length, int Width)
{

    double[] rect = new double[2];

    double areaOfRectangle = Length * Width;
    double perimeterOfRectangle = 2 * (Length + Width);

    rect[0] = areaOfRectangle;
    rect[1] = perimeterOfRectangle;

    return rect;
}
public class SpecialRectangle
{
    double AreaOfRectangle { get; set; }
    double PerimeterOfRectangle { get; set; }
}

public SpecialRectangle Rectangle(double Length, double Width)
{
    return new SpecialRectangle() { AreaOfRectangle = Length * Width, PerimeterOfRectangle = 2 * (Length + Width) };
}
在其他情况下,您可能需要一个
Tuple
实例、自定义类或结构实例作为返回类型,或者一个
out
参数

类似的内容也是一个选项(使用自定义类
SpecialRectangle
):

可以这样称呼:

public double[] Rectangle(int Length, int Width)
{

    double[] rect = new double[2];

    double areaOfRectangle = Length * Width;
    double perimeterOfRectangle = 2 * (Length + Width);

    rect[0] = areaOfRectangle;
    rect[1] = perimeterOfRectangle;

    return rect;
}
public class SpecialRectangle
{
    double AreaOfRectangle { get; set; }
    double PerimeterOfRectangle { get; set; }
}

public SpecialRectangle Rectangle(double Length, double Width)
{
    return new SpecialRectangle() { AreaOfRectangle = Length * Width, PerimeterOfRectangle = 2 * (Length + Width) };
}

否。返回数组、元组或具体类。创建一个新类并不昂贵是的,这段代码有什么问题?(除了数组的长度)PS.方法返回值,而不是classes@PanagiotisKanavosOP已经返回了一个数组。@patrickhoffman不使用该语法。返回值为
double
。可能OP的名称
Rectangle[]
出现语法错误,认为C#不允许数组返回值?不。返回数组、元组或具体类。创建一个新类并不昂贵是的,这段代码有什么问题?(除了数组的长度)PS.方法返回值,而不是classes@PanagiotisKanavosOP已经返回了一个数组。@patrickhoffman不使用该语法。返回值为
double
。也许OP的名称
Rectangle[]
有语法错误,认为C#不允许数组返回值?在我的代码中,它说数组声明器不正确。当我将此代码用作方法时,它不起作用。我需要这样的东西。双区域REC=MyFormulas.Rectangle=Rectangle[0];PerimeterOfRec=MyFormulas.Rectangle=Rectangle[1];为什么不使用
double[]AreaOfRec=MyFormulas.Rectangle()
?在我的代码中,它说的是坏数组声明符。当我将此代码用作方法时,它不起作用。我需要这样的东西。双区域REC=MyFormulas.Rectangle=Rectangle[0];PerimeterOfRec=MyFormulas.Rectangle=Rectangle[1];为什么不使用
double[]AreaOfRec=MyFormulas.Rectangle()