using System;
public interface IPrintMessage
{
void Print();
};
class Class1
{
public void Print()
{
Console.WriteLine("Hello from Class1!");
}
}
class Class2 : IPrintMessage
{
public void Print()
{
Console.WriteLine("Hello from Class2!");
}
}
class MainClass
{
public static void Main()
{
PrintClass PrintObject = new PrintClass();
PrintObject.PrintMessages();
}
}
class PrintClass
{
public void PrintMessages()
{
Class1 Object1 = new Class1();
Class2 Object2 = new Class2();
PrintMessageFromObject(Object1);
PrintMessageFromObject(Object2);
}
private void PrintMessageFromObject(object obj)
{
IPrintMessage PrintMessage;
PrintMessage = obj as IPrintMessage;
if(PrintMessage != null)
PrintMessage.Print();
}
}
as operator
using System;
class Employee { }
class ContractEmployee : Employee { }
class CastExample5
{
public static void Main ()
{
Employee e = new Employee();
Console.WriteLine("e = {0}", e == null ? "null" : e.ToString());
ContractEmployee c = e as ContractEmployee;
Console.WriteLine("c = {0}", c == null ? "null" : c.ToString());
}
}
Demonstrate a using alias
// Demonstrate a using alias.
using System;
// Create an alias for Counter.CountDown.
using Count = Counter.CountDown;
// Declare a namespace for counters.
namespace Counter {
// A simple countdown counter.
class CountDown {
int val;
public CountDown(int n) {
val = n;
}
public void reset(int n) {
val = n;
}
public int count() {
if(val > 0) return val--;
else return 0;
}
}
}
public class NSDemo4 {
public static void Main() {
// Here, Count is used as a name for Counter.CountDown.
Count cd1 = new Count(10);
int i;
do {
i = cd1.count();
Console.Write(i + " ");
} while(i > 0);
Console.WriteLine();
Count cd2 = new Count(20);
do {
i = cd2.count();
Console.Write(i + " ");
} while(i > 0);
Console.WriteLine();
cd2.reset(4);
do {
i = cd2.count();
Console.Write(i + " ");
} while(i > 0);
Console.WriteLine();
}
}
Using an alias to resolve ambiguity
/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa
Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
// Alias.cs -- demonstrates using an alias to resolve ambiguity
//
// Compile this program with the following command line:
// C:>csc Alias.cs
using System;
using MsgBox = System.Windows.Forms.MessageBox;
using System.Timers;
namespace nsNamespaces
{
public class Alias
{
static Timer timer;
static public void Main ()
{
// Create the timer object.
timer = new Timer (2000);
// This is a one-shot timer. Set auto reset to false
timer.AutoReset = false;
// Assign the event handler method.
timer.Elapsed += new ElapsedEventHandler(ProcessTimerEvent);
// Start the timer.
timer.Start ();
// Wait for the timeout to occur.
MsgBox.Show ("Waiting for timer to expire", "Text");
}
// Timer event handler.
private static void ProcessTimerEvent (Object obj, ElapsedEventArgs e)
{
MsgBox.Show ("The timer has expired. Press "OK" " +
" to terminate the program",
"Timer Expired");
timer.Close ();
Environment.Exit (0);
}
}
}
Validates the zip code with regular expression
//Microsoft Public License (Ms-PL)
//http://c4fdevkit.codeplex.com/license
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
namespace C4F.DevKit.WebServices
{
/// <summary>
/// Provides useful methods like conversion methods.
/// </summary>
public static class Utility
{
/// <summary>
/// Validates the zip code
/// </summary>
/// <param name="zipCode">Zip code</param>
/// <returns>True if zip code is valid</returns>
public static bool ValidateZipCode(string zipCode)
{
if (String.IsNullOrEmpty(zipCode))
return false;
return Regex.IsMatch(zipCode, "(^[0-9]{5}$)|(^[0-9]{5}-[0-9]{4}$)");
}
}
}
Is valid url with regular expression
//The MIT License (MIT)
//http://arolibraries.codeplex.com/license
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace AroLibraries.ExtensionMethods.Strings
{
public static class StringExt
{
public static bool Ext_IsValidUrl(this string text)
{
///Uri temp; return Uri.TryCreate(text);
Regex rx = new Regex(@"http(s)?://([w-]+.)+[w-]+(/[w- ./?%&=]*)?", RegexOptions.Compiled);
return rx.IsMatch(text);
}
}
}
Regular expression with For each and split
/*
Learning C#
by Jesse Liberty
Publisher: O'Reilly
ISBN: 0596003765
*/
using System;
using System.Text;
using System.Text.RegularExpressions;
namespace RegularExpressions
{
public class TesterRegularExpressions
{
public void Run()
{
string s1 =
"One,Two,Three Liberty Associates, Inc.";
Regex theRegex = new Regex(" |, |,");
StringBuilder sBuilder = new StringBuilder();
int id = 1;
foreach (string subString in theRegex.Split(s1))
{
sBuilder.AppendFormat(
"{0}: {1}
", id++, subString);
}
Console.WriteLine("{0}", sBuilder);
}
[STAThread]
static void Main()
{
TesterRegularExpressions t = new TesterRegularExpressions();
t.Run();
}
}
}

