无法在 C# 函数中将自定义(结构)类型作为参数传递
本文关键字:结构 类型 参数传递 自定义 函数 | 更新日期: 2023-09-27 18:31:55
我正在尝试将自定义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");
}
}
将
结构声明为公共结构:
public struct P4_Distance
{
...
}
没有公众,该结构就保护了可访问性。您不能在某处将受保护的结构公开为公共元素 - 这将破坏受保护可访问性的目的。
通过使结构公开,可以使可访问性保持一致。