C# 尝试获取数组的第一个元素,然后将其返回给main方法

C# 尝试获取数组的第一个元素,然后将其返回给main方法,c#,C#,代码无法编译,试图找到获取数组的第一个元素并将其返回给main方法的方法 using System; namespace ProgramExercise10_2 { class PhotoDemo { class Photo { protected double[] price = { 3.99, 5.99, 9.99 }; public photoPrice(int width, int he

代码无法编译,试图找到获取数组的第一个元素并将其返回给main方法的方法

using System;

namespace ProgramExercise10_2
{

    class PhotoDemo
    {
        class Photo
        {
            protected double[] price = { 3.99, 5.99, 9.99 };

            public photoPrice(int width, int height)
            {
                Console.Write("Enter photo width: ");
                width = Convert.ToInt32(Console.ReadLine());
                Console.Write("Enter photo height: ");
                height = Convert.ToInt32(Console.ReadLine());

                if ( width == 8 && height == 10)
                {
                    double[] _price = price[1];
                    return _price;
                }
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {

        }
    }
}
无法将double隐式转换为double[]

 double[] _price = price[1]; 
应该是

double _price = price[1];

一定是

 public double PhotoPrice(int width, int height)
 {
     ...
    if (width == 8 && height == 10)
    {
       return price[0]; // or price[1];
    }
    return 0;
 }

*命名约定C#

关于您发布的代码,有许多奇怪之处,但下面的代码是有效的:

    public double PhotoPrice()
    {
        Console.Write("Enter photo width: ");
        int width = Convert.ToInt32(Console.ReadLine());
        Console.Write("Enter photo height: ");
        int height = Convert.ToInt32(Console.ReadLine());

        if (width == 8 && height == 10)
        {
            double _price = price[0];
            return _price;
        }
        else return 0.0D;
    }
奇怪的是:

  • 您似乎在另一个类(PhotoDemo)中(不必要地)包含了一个类(照片)
  • 在方法中有一些参数,如果传入,则不使用这些参数,而是在方法中设置
  • 您需要一个默认返回(请参阅我的其他返回…)
  • 您正在将数组中的第二项(数组是基于零的索引)返回到另一个数组中,但只需要将其返回到双精度数组中。你可以直接返回返回double的结果,但我没有明确给出
  • 方法的命名约定不是CamelCase

您仍然需要实例化该类(PhotoDemo)并从静态void main调用该方法…

double\u price=price[0]
\u价格
应为
双精度
,而不是数组。您在
photoPrice
方法中也没有返回类型,并且您不会处理
if
条件从未满足的情况。不确定这是否是您想要的,但数组的第一个元素实际上是元素0:
double\u price=price[0]
    public double PhotoPrice()
    {
        Console.Write("Enter photo width: ");
        int width = Convert.ToInt32(Console.ReadLine());
        Console.Write("Enter photo height: ");
        int height = Convert.ToInt32(Console.ReadLine());

        if (width == 8 && height == 10)
        {
            double _price = price[0];
            return _price;
        }
        else return 0.0D;
    }