自定义数据类型转换Demo

来源:互联网 发布:nba新浪体育数据库 编辑:程序博客网 时间:2024/06/05 20:15

    对于基类型之间的数据类型转换或者特定对象之间类型转换,目前的编译器都可以帮我们完成。

    但是有时候,我们需要在两个非基类型,他们之间也没有继承关系的对象之间进行类型转换,比如类与int之间的转换;这个时候,只能由我们自己定义。

    

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace Demo1
  5. {
  6.     class Demo2
  7.     {
  8.         static void Main()
  9.         {
  10.             myAge a = 25;
  11.             a.show();
  12.             myAge myage = new myAge(40);
  13.             Console.WriteLine((Int32)myage);
  14.         }
  15.     }
  16.     class myAge
  17.     {
  18.         private int age;
  19.         public int Age
  20.         {
  21.             get { return age; }
  22.             set { age = value; }
  23.         }
  24.         public myAge(int age)
  25.         {
  26.             this.age = age;
  27.         }
  28.         public void show()
  29.         {
  30.             Console.WriteLine(age);
  31.         }
  32.         public static implicit operator myAge(int num)
  33.         {
  34.             return new myAge(num);
  35.         }
  36.         public static explicit operator Int32(myAge age)
  37.         {
  38.             return age.age;
  39.         }
  40.     }
  41. }

    注意:

    1.和运算符重载一样,这里的定义也必须Public, static

    2.返回值或者参数必须是所在对象的类型

    3.可以隐式可以显式转换

 

 

原创粉丝点击