记录几个别人面试过的变态题目。
1、结构体定义构造的时候需要注意什么?
先看两个测试结果:
总结:结构体中不允许显示的定义构造函数,可以定义有参构造,但是需要在函数中将结构体中定义的字段赋值。另外需要注意,结构体中不允许直接对字段赋值。
3、结构体中的类是什么类型,值类型还是引用类型?结构体继承了接口,是值类型还是引用类型?
1 using System; 2 3 namespace ConsoleApp1 4 { 5 interface IPeople { } 6 7 class Job { } 8 9 struct People : IPeople 10 { 11 public Job job; 12 public string name; 13 public int age; 14 15 public People(int age) 16 { 17 this.job = new Job(); 18 this.name = "Jim"; 19 this.age = age; 20 } 21 } 22 23 public class Program 24 { 25 static void Main(string[] args) 26 { 27 People p = new People(12); 28 p.job = new Job(); 29 Console.WriteLine(" 结构体继承了接口是否值类型 : " + p.GetType().IsValueType); 30 Console.WriteLine(" 结构体中的 类 是否值类型 : " + p.job.GetType().IsValueType); 31 Console.WriteLine(" 结构体中的 字符串 是否值类型 :" + p.name.GetType().IsValueType); 32 Console.ReadLine(); 33 } 34 } 35 }