• 总结下C#中有关结构体的几个问题


    记录几个别人面试过的变态题目。

    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 }
  • 相关阅读:
    Java 8与Runtime.getRuntime().availableProcessors()
    nginx配置
    周末完成工作小结
    CentOS 8 安装MySQL 8.0
    centOS8网络获取不了
    IUAP平台新增菜单存储过程
    centOS8安装Docker
    Mybatis里用到的设计模式
    2020,回顾过往,展望未来
    使用 Apache SSI(Server Side Includes) 制作多语言版静态网页
  • 原文地址:https://www.cnblogs.com/luguoshuai/p/12719534.html
Copyright © 2020-2023  润新知