zoukankan      html  css  js  c++  java
  • 判断一个OBject类型是值类型还是引用类型

    “根据定义,所有的值类型都必须从System.ValueType派生,所有的枚举都从System.Enum抽象类型中派生,后者又从System.ValueType派生的”                               -------摘自《CLR VIA C#》;

    可以通过查找MSDN

    测试代码:

     class Program
        {

            static void Main(string[] args)
            {
                Program p = new Program();

                int m = 1;
                Console.WriteLine("int m=1");
                p.function(m);
                double n = 2.44;
                Console.WriteLine("double n = 2.44");
                p.function(n);
                string x = "dasdas";
                Console.WriteLine("string x");
                p.function(x);
                M mm = new M();
                Console.WriteLine("M为结构体");
                p.function(mm);
                Console.WriteLine("Program p ");
                p.function(p);
                Console.ReadLine();
            }

            public void function(Object o)
            {

              if (o.GetType().IsValueType)
                    Console.WriteLine( "类型:" + o + "为值类型");
                else
                   Console.WriteLine( "类型:" +o + "为引用类型");
            }

        }
        public struct M
        {
            int x;
            int y;
        }

    输出结果:

  • 相关阅读:
    爬虫之初试
    [已解决]疑问:关于postgres的to_number()
    随笔
    简单的任意列数均匀布局
    去除VS2010中中文注释下的红色波浪线
    DataTable举例
    DevExpress::XtraBars::BarEditItem获取EditValue值事件
    List<String^>^ 引用空间
    TreeList的VisibleNodesCount,Noes.Count,AllNdoesCount以及焦点节点的删除
    获取工程的exe文件的所在目录
  • 原文地址:https://www.cnblogs.com/h20064528/p/2466123.html
Copyright © 2011-2022 走看看