您的位置:首页 > 编程语言 > C#

C# - define operator in C#

2013-01-29 00:00 211 查看
You can define operators inside a class. Below is an example of the defining some arithmatic operator within some classes which is called Fraction.

// cs_keyword_operator.cs
using System;
class Fraction
{
int num, den;
public Fraction(int num, int den)
{
this.num = num;
this.den = den;
}

// overload operator +
public static Fraction operator +(Fraction a, Fraction b)
{
return new Fraction(a.num * b.den + b.num * a.den,
a.den * b.den);
}

// overload operator *
public static Fraction operator *(Fraction a, Fraction b)
{
return new Fraction(a.num * b.num, a.den * b.den);
}

// define operator double
public static implicit operator double(Fraction f)
{
return (double)f.num / f.den;
}
}

class Test
{
public 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));
}
}

You can reference thi spage - operator for more details.
Based on the conversion operator information, I have defined some conversion operator. Here is the code.

public class EosPersistenceStorageProvider : FileStreamProvider, IExtendedEosPersistenceStorageProvider
{

#region Operators
// boqwang --
// TODO :
// think of better way
public static explicit operator EosPersistenceStorageProvider(RamboIntegration.RamboPersistenceStorageProvider provider)
{
Guard.ArgumentNotNull(provider, "provider");
return (EosPersistenceStorageProvider)provider.Stub;
}
#endregion Operators

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: