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