惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Help Net Security
Help Net Security
G
Google Developers Blog
雷峰网
雷峰网
WordPress大学
WordPress大学
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Engineering at Meta
Engineering at Meta
Security Latest
Security Latest
T
Threat Research - Cisco Blogs
AWS News Blog
AWS News Blog
F
Full Disclosure
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Exploit Database - CXSecurity.com
J
Java Code Geeks
U
Unit 42
C
Cyber Attacks, Cyber Crime and Cyber Security
V
V2EX
C
Cisco Blogs
博客园 - 司徒正美
Project Zero
Project Zero
L
LINUX DO - 热门话题
阮一峰的网络日志
阮一峰的网络日志
Blog — PlanetScale
Blog — PlanetScale
Scott Helme
Scott Helme
A
About on SuperTechFans
Hugging Face - Blog
Hugging Face - Blog
S
Securelist
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
S
Schneier on Security
G
GRAHAM CLULEY
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyberwarzone
Cyberwarzone
MongoDB | Blog
MongoDB | Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
T
Threatpost
Recorded Future
Recorded Future
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
N
News and Events Feed by Topic
人人都是产品经理
人人都是产品经理
The Register - Security
The Register - Security
S
Security Archives - TechRepublic
博客园 - Franky
N
News | PayPal Newsroom
Simon Willison's Weblog
Simon Willison's Weblog
S
SegmentFault 最新的问题
W
WeLiveSecurity
A
Arctic Wolf
B
Blog

博客园 - tiny羊

自制一个可以为XNA所用的GIF 转 PNG 的小工具 展示PNG动画精灵 XNA 4.0中实现简单的快捷键模板 C#关键字 之 访问与上下文 C#关键字 之 运算符 C#关键字 之 参数 - tiny羊 C#关键字 之 块 C#关键字 之 修饰符 Sql小题几道 泛型类及系统中常用的泛型类 泛型函数 Javascript简明教程6 定义时执行与单例模式 编程语言发展趋势图 Javascript简明教程系列 Javascript简明教程五 DOM Javascript简明教程四 作用域 Javascript简明教程三 函数 Javascript简明教程二 变量 - tiny羊 Javascript简明教程一 使用Javascript - tiny羊
C#关键字 之 转换
tiny羊 · 2008-10-06 · via 博客园 - tiny羊
  • explicit 关键字用于声明必须使用强制转换来调用的用户定义的类型转换运算符。例如,在下面的示例中,此运算符将名为 Fahrenheit 的类转换为名为 Celsius 的类:

    
    public static explicit operator Celsius(Farenheit f)
    {//我这么定义
        return new Celsius((5.0f/9.0f)*(f.degrees-32));
    }
    //就能这么用
    Farenheit f = new Farenheit(100.0f);
    Celsius c = (Celsius)f;
  • implicit 关键字用于声明隐式的用户定义类型转换运算符。如果可以确保转换过程不会造成数据丢失,则可使用该关键字在用户定义类型和其他类型之间进行隐式转换。

        public static implicit operator double(Digit d)
            {
                return d.val;
            }
    则
     Digit dig = new Digit(7);
     double num = dig;
  • operator 关键字来重载内置运算符,或提供类或结构声明中的用户定义转换

    class Fraction
    {
        int num, den;
        public Fraction(int num, int den)
        {
            this.num = num;
            this.den = den;
        }
        //重载运算符 +
        public static Fraction operator +(Fraction a, Fraction b)
        {
            return new Fraction(a.num * b.den + b.num * a.den,
               a.den * b.den);
        }
    
        // 重载运算符 *
        public static Fraction operator *(Fraction a, Fraction b)
        {
            return new Fraction(a.num * b.num, a.den * b.den);
        }
    
        // 设置强制类型转换
        public static implicit operator double(Fraction f)
        {
            return (double)f.num / f.den;
        }
    }
    
    class Test
    {
        static void Main()
        {
            Fraction a = new Fraction(1, 2);
            Fraction b = new Fraction(3, 7);
            Fraction c = new Fraction(2, 3);
            Console.WriteLine((double)(a * b + c));
        }
    }