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(); } } }