结构不能包含显式无参数构造函数

时间:2015-07-07 09:56:46

标签: c#

您好,

我得到" Structs不能包含显式的无参数构造函数"构建期间出错,但我能够编译错误的程序。

struct Program
{
    string Name;
    string Degree;
    string Dpthead;
    //Constructor
    public Program ()
    {
       Console.WriteLine("Enter the Program's Name: ");
       Name = Console.ReadLine();
       Console.WriteLine("Enter the Program's Degree Name: ");
       Degree = Console.ReadLine();
       Console.WriteLine("Enter the Head of Program : ");
       Dpthead = Console.ReadLine();
     }
     public void PrintUProgramDetails()
     {
        Console.WriteLine("Program Name: {0} from {1}. Enrolled in {2} degree(s)", Name, Degree, Dpthead);
     }

}

纠正此错误的可能方法有哪些?任何帮助或指导。

1 个答案:

答案 0 :(得分:0)

struct Program设为class

structs是不可变的数据对象。有很多建议when to use structs

  

如果类型的实例很小并且通常是短暂的或者通常嵌入在其他对象中,请考虑定义结构而不是类。

     

除非类型具有以下所有特征,否则不要定义结构:

     
      
  • 它逻辑上表示单个值,类似于基本类型(整数,双精度等)。
  •   
  • 实例大小小于16个字节。
  •   
  • 这是不可改变的。
  •   
  • 不必频繁装箱。
  •   

其次,您在那里的Program - 构造函数将更好地视为main - 方法。然后使用三个string - 值作为参数调用数据对象的构造函数。