C# Tutorials - Herong's Tutorial Examples - v3.32, by Herong Yang
Operators
This section describes what is operators, which are special methods that can be invoked in a syntax similar to arithmetic and comparison operations.
Operators are special methods in a class, which will allow objects of this class to invoke those methods in a syntax similar to the syntax of expression. The following program shows a simple currency class with some operators defined:
// Currency.cs
// Copyright (c) 2008 HerongYang.com. All Rights Reserved.
using System;
class Currency {
private long v;
public Currency(long value) {
v = value*100;
}
public Currency(double value) {
// value is rounded down after two decimal digits
v = (long)(value*100.0);
}
public static implicit operator double(Currency a) {
return a.v/100.0;
}
public static implicit operator Currency(double a) {
return new Currency(a);
}
public static Currency operator+(Currency a, Currency b) {
Currency c = new Currency(0);
c.v = a.v+b.v;
return c;
}
public static bool operator==(Currency a, Currency b) {
return a.v == b.v;
}
public static bool operator!=(Currency a, Currency b) {
return a.v != b.v;
}
public override string ToString() {
if (v%100==0) return (v/100).ToString()+".00$";
else return (v/100).ToString()+"."+(v%100).ToString()+"$";
}
public static void Main() {
Currency a = new Currency(100); // constructor
Currency b = 100.125; // conversion operator
Currency c = b + b; // + operator
Currency d = 100.1249;
Console.WriteLine("a = {0}.",a); // overridden ToString()
Console.WriteLine("b = {0}.",b);
Console.WriteLine("c = {0}.",c);
Console.WriteLine("b==d = {0}.",b==d); // == operator
}
}
Output:
a = 100.00$. b = 100.12$. c = 200.24$. b==d = True.
Table of Contents
Logical Expressions and Conditional Statements
Visual C# 2010 Express Edition
"const" and "readonly" Variables
C# Compiler and Intermediate Language
Compiling C# Source Code Files
MSBuild - Microsoft Build Engine
System.Diagnostics.FileVersionInfo Class
WPF - Windows Presentation Foundation