我正在尝试将自定义struct
值传递给C#中的public static
方法,但它正在提供
错误1辅助功能不一致
我的main
方法代码:
Console.WriteLine("Distance 1");
Console.Write("Enter feet : ");
int feet = int.Parse(Console.ReadLine());
Console.Write("Enter Inches : ");
float inches = float.Parse(Console.ReadLine());
P4_Distance distance1 = new P4_Distance(feet, inches);
Console.WriteLine("Distance 2");
Console.Write("Enter feet : ");
feet = int.Parse(Console.ReadLine());
Console.Write("Enter Inches : ");
inches = float.Parse(Console.ReadLine());
P4_Distance distance2 = new P4_Distance(feet, inches);
P4_Compare_distances(distance1, distance2);
我的struct
只是:
struct P4_Distance
{
public int feet { get; set; }
public float inches { get; set; }
public float totalInches { get; set; }
public P4_Distance(int Feet,float Inches)
{
feet = Feet;
inches = Inches;
totalInches = inches + (feet * 12);
}
}
给出错误的方法是:
public static void P4_Compare_distances(P4_Distance distance1, P4_Distance distance2)
{
if (distance1.totalInches > distance2.totalInches)
{
Console.WriteLine("Distance 1 > Distance 2");
}
else
{
Console.WriteLine("Distance 2 > Distance 1");
}
}
答案 0 :(得分:2)
将结构声明为public:
public struct P4_Distance
{
...
}
没有公众,该结构已经保护了可访问性。您不能将受保护的结构作为公共元素暴露在某个地方 - 这会破坏受保护的可访问性的目的。
通过公开结构,您可以使访问性保持一致。