public CompareTwoClass() // default constructor { AClass cls1 = new AClass(); BClass cls2 = new BClass(); string str1 = "Test"; string str2 = "Test"; Console.WriteLine(Object.Equals(cls1, cls2)); //return False, since the two classes are not same Console.WriteLine(object.Equals(str1, str2)); //return True, since Test = Test Console.WriteLine(object.ReferenceEquals(cls1, cls2)); //return False cls1.AMethod(); cls2.AMethod(); //BClass inheritance AClass and AMethod is public so can call it cls2.B2Method(); cls2.B3Method(); //internal can be called in same .dll cls2.B4Method(); //protected internal can be called in current project and all members in derived class }
static void Main() { Console.WriteLine("Hello World!! This is Sophy"); Console.WriteLine("Press any key to continue"); //Console.ReadLine(); myClass c = new myClass(); //Console.ReadLine(); myEnum e = new myEnum(); Test obj = new Test(); obj.Check(); Test obj2 = new Test(200); obj2.Check(); Test obj3 = new Test(300); obj3.Check(); int i = 0; String outStr1 = Test.GetNextNameByRef(ref i); Console.WriteLine(outStr1); Console.WriteLine("ref Current value of integer i: " + i.ToString()); outStr1 = Test.GetNextNameByRef(ref i); Console.WriteLine(outStr1); Console.WriteLine("ref Current value of integer i: " + i.ToString()); outStr1 = Test.GetNextNameByRef(i); Console.WriteLine(outStr1); Console.WriteLine("Current value of integer i: " + i.ToString()); outStr1 = Test.GetNextNameByRef(i); Console.WriteLine(outStr1); Console.WriteLine("Current value of integer i: " + i.ToString()); Console.WriteLine("Previous value of integer i: " + i.ToString()); outStr1 = Test.GetNextNameByOut(out i); Console.WriteLine(outStr1); Console.WriteLine("out Current value of integer i: " + i.ToString()); outStr1 = Test.GetNextNameByOut(out i); Console.WriteLine(outStr1); Console.WriteLine("out Current value of integer i: " + i.ToString()); int x = 10; Test.Show(x); Console.WriteLine("Not Ref paramter get value from outside called method: " + x); //10 Test.Show(ref x); Console.WriteLine("Ref paramter get value from called method: " + x); //10+23=33 Test.Show(ref x); Console.WriteLine("Ref paramter get value from called method: " + x); //33+23=56 Test.Show(x); Console.WriteLine("Not Ref paramter get value from outside called method: " + x); //56 Test.Show(x); Console.WriteLine("Not Ref paramter get value from outside called method: " + x); //56 Test.ShowOut(out x); Console.WriteLine("Out paramter get value from called method: " + x); //23+23=46 value in called method Demo d = new Demo(); d.Show(); Demo d1 = new Demo(44); d1.Show(); Person p = new Person(); p.Name = "Sophy Yang"; p.State = "IA"; Console.WriteLine("Your Name is {0}", p.Name); Console.WriteLine("Your State is {0}", p.State); //p.Company = "Multi-State Lottery Association"; readOnly cannot assign value Console.WriteLine("You are working at {0}", p.Company); p.Notes = "This is the testing C#"; Console.WriteLine("Notes: {0}", p.showNotes); //Notes is writeOnly can not get it Person objPerson = new Person() { Name = "Suki Bunny", Age = 24, City = "Des Moines", State = "IA" }; Console.WriteLine("New Person Name: {0}", objPerson.Name); //Voter objVoter = new Voter(); //Console.Write("Please enter your age: "); //objVoter.Age = Convert.ToInt32(Console.ReadLine()); //Console.WriteLine("Your age is: {0} years", objVoter.Age); //d.showDateTime();//non-static class need use new to created //Demo.ShowPressedKey(); //static class, been call by name //Demo.doMath(); //static class call by name no need new //Student objStudent = new Student(); //Console.WriteLine("Please enter your marks: "); //objStudent.Marks = Convert.ToInt32(Console.ReadLine()); //Console.WriteLine("Your marks are: {0} marks", objStudent.Marks); ////Console.ReadKey(); try { Employee objEmployee = new Employee() { EmployeeId = 1001, Name = "Sophy" }; Console.WriteLine("Employee Id is: {0} and Employee Name is {1}", objEmployee.EmployeeId, objEmployee.Name); objEmployee.SetID(-30); Console.WriteLine("Employee Id is: {0} and Employee Name is {1}", objEmployee.EmployeeId, objEmployee.Name); Console.WriteLine("{1} your bonus: {0}", objEmployee.Bonus, objEmployee.Name); //Console.ReadKey(); } catch (Exception ex) { Console.WriteLine(ex.Message); } Class1 ob = new Class1(); Console.WriteLine(ob.Display()); Console.WriteLine(ob.Print()); ob.NewMethod(); ClassLibrary1.Class1 ob_dll = new ClassLibrary1.Class1(); Console.WriteLine(ob_dll.Display()); Console.WriteLine(ob_dll.Print()); ob_dll.NewMethod(); string str = "12345"; int num = str.IntegerExtension(); Console.WriteLine("The output using extension method: {0}", num); str = "This is sophy testing, total words count is 14, total char count is 57"; num = str.WordCount(); Console.WriteLine("Total word count: {0}", num); num = str.TotalCharWithoutSpace(); Console.WriteLine("Total char count: {0}", num); //Write text to a new file // the Dispose method is invoked which automatically flushes and closes the stream. string[] lines = { "First line", "Second line", "Third line" }; string mydocpath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); using (StreamWriter outputFile = new StreamWriter(Path.Combine(mydocpath, "sophyWriteLines.txt"))) { foreach (string line in lines) { outputFile.WriteLine(line); } } Console.WriteLine(mydocpath); //Append text using (StreamWriter outputfile = new StreamWriter(Path.Combine(mydocpath, "sophyWriteLines.txt"), true)) { outputfile.WriteLine("Four line"); } // Write the text asynchronously to a new file //ClassLibrary1.Class1.WriteTextAsync("hi, this is sophy writing the text asynchronously"); string val = "Hello"; val += " am "; val += "Nitin Pandit"; Console.WriteLine(val); StringBuilder val_sb = new StringBuilder(""); val_sb.Append("Hello "); val_sb.Append(" am Nitin Pandit: "); Console.WriteLine(val_sb); //Demo.DoStringStringBuilder(); string string1 = "Today is " + DateTime.Now.ToString(); Console.WriteLine(string1); string string2 = "Hi " + "This is Sophy"; string2 += " Yang"; //Console.WriteLine(string2); StringBuilder Number = new StringBuilder(100); for (int z = 0; z < 10; z++) { Number.Append(z); } //Console.WriteLine(Number); Console.WriteLine("===== Delegate Demo ====== "); TestDelegate obj_delegate = new TestDelegate(); obj_delegate.delObject("sophy"); DelegateDemo objD = new DelegateDemo(); //DelegateDemo is class, new will call default constractor objD.delObject("SophyYang"); //delObject is delegate signed by new objD.delObject2("Sukibunny"); //delObject2 is delegate signed by new Console.WriteLine("===== Delegate Demo ====== "); //pass method as parameter: delegate delmethod del1 = DelegateDemo.show; //show() is public static method, delmethod is delegate class delmethod del2 = new delmethod(DelegateDemo.display); //display is public static method delmethod del3 = objD.print; //print is not static method, so need new created object del1(); del2(); del3(); Console.WriteLine("===== multicast Delegate Demo ====== "); multidelmethod del4 = new multidelmethod(objD.plus_Method); //plus_method is not static method del4 += new multidelmethod(objD.substract_Method); //substract_method is not static method del4(20, 10); Console.WriteLine("===== Anonymous Delegate Demo ====== "); AnonymousDelMethod Display = delegate() //lambda expression { Console.WriteLine("Anonymous Delegate method"); }; Display(); Console.WriteLine("===== Event Delegate Demo ====== "); objD.MyEvent += new eventdelmethod(objD.Display); //Display is not static method //MyEvent will execuite method Display in class DelegateDemo objD.RaiseEvent(); Console.WriteLine("===== Multi Event Delegate Demo ====== "); objD.MyMultiEven += new multidelmethod(objD.Add); objD.MyMultiEven += new multidelmethod(objD.Subtract); objD.RaiseMultiEvent(30, 50); //output 80, -20 Console.WriteLine("===== Partial classes Demo ====== "); PartialClasses pc = new PartialClasses(); pc.Function1(); pc.Function2(); ExceptionDemo eDemo = new ExceptionDemo(); try { //all 2 lines below are working eDemo.ExceptionMethod(); //eDemo.AnotherMethod(); } catch (Exception ex) { //all 3 lines below are working //throw ex; //throw new ApplicationException("Sophy's exception could not get data", ex); Console.WriteLine("throw Sophy's exception (" + ex.Message + ")"); } string[] strArr = new string[1]; eDemo.SophyExceptionArgumentDemo(strArr); strArr[0] = "2"; eDemo.SophyExceptionArgumentDemo(strArr); i = 123456; Console.WriteLine("{0:C}", i); // $123,456.00 Currency Console.WriteLine($"{i:C}"); //$ Console.WriteLine("{0:D}", i); // 123456 Decimal Console.WriteLine("{0:E}", i); // 1.234560E+005 Exponent Console.WriteLine("{0:F}", i); // 123456.00 Fixed point Console.WriteLine("{0:G}", i); // 123456 General Console.WriteLine("{0:N}", i); // 123,456.00 Currency Console.WriteLine("{0:P}", i); // 12,345,600.00 % Console.WriteLine("{0:X}", i); // 1E240 Hex i = 123456; Console.WriteLine(); Console.WriteLine("{0:#0}", i); // 123456 Console.WriteLine("{0:#0;(#0)}", i); // 123456 Console.WriteLine("{0:#0;(#0);}", i); // 123456 Console.WriteLine("{0:#%}", i); // 12345600% i = -123456; Console.WriteLine(); Console.WriteLine("{0:#0}", i); // -123456 Console.WriteLine("{0:#0;(#0)}", i); // (123456) Console.WriteLine("{0:#0;(#0);}", i); // (123456) Console.WriteLine("{0:#%}", i); // -12345600% i = 0; Console.WriteLine(); Console.WriteLine("{0:#0}", i); // 0 Console.WriteLine("{0:#0;(#0)}", i); // 0 Console.WriteLine("{0:#0;(#0);}", i); // Console.WriteLine("{0:#%}", i); // % MultiDeleTest md = new MultiDeleTest(); Class1 c1 = new Class1(); Class2 c2 = new Class2(); DelegateDemo c3 = new DelegateDemo(); IsTest.Test(c1); IsTest.Test(c2); IsTest.Test(c3); IsTest.Test("Passing String Value instead of class"); IsTest.asTest(); Demo.NullableDemo(); CompareTwoClass compareTwoClass = new CompareTwoClass(); //CompareTwoClassTest is static so don't need keywork "new" to call it AClass aclass = new AClass(); //AClass is not static so need use keywork "new" BClass bclass = new BClass(); aclass.AMethod(); bclass.AMethod(); bclass.B2Method(); bclass.B3Method(); bclass.B4Method(); Console.WriteLine(bclass.GetHashCode()); //return 21083178 DataTypeConversion dataTypeConversion = new DataTypeConversion(); BoxingUnboxing boxingUnboxing = new BoxingUnboxing(); StructDemo structDemo = new StructDemo(); //StructDemo structDemo1 = new StructDemo(10,10); StructDemo structDemo1; //don't need use new keywork to create a object structDemo1.x = 10; structDemo1.y = 20; Console.WriteLine($"Struct Demo 1: x = {structDemo.x} y = {structDemo.y }"); Console.WriteLine($"Struct Demo 2: x = {structDemo1.x} y = {structDemo1.y }"); StructurePerson strX = new StructurePerson(); //structure is value type StructurePerson strY = new StructurePerson(); strX.FirstName = "Sophy"; strX.LastName = "Yang"; strY.FirstName = "Sophy"; strY.LastName = "Yang"; if (strX.Equals(strY)) { Console.WriteLine("strX = strY"); //will return this, struct is value type } else { Console.WriteLine("strX != strY"); } ClassPerson clsX = new ClassPerson(); //class is reference type, object 1 ClassPerson clsY = new ClassPerson(); //class is reference type, object 2 ClassPerson clsZ = clsX; //clsZ is assigned to object clsX clsX.FirstName = "Sophy"; clsX.LastName = "Yang"; clsY.FirstName = "Sophy"; clsY.LastName = "Yang"; if (clsX.Equals(clsY)) { Console.WriteLine("clsX = clsY"); } else { Console.WriteLine("clsX != clsY"); //will return this, class is reference type } clsX.FirstName = "Michael"; if (clsX.Equals(clsZ)) { Console.WriteLine("clsX = clsZ"); //will return this, since clsZ assigned object clsX } else { Console.WriteLine("clsX != clsZ"); } Cinterface.InterfaceTest(); //in interface1.cs public static method Square.AbstractDemoTest(); //in AbstractDemo.cs public static method DerivedClass.DerivedClassTest(); //in AbstractDemo.cs public static method Bike.BikeTest(); //in AbstractDemo.cs public static method B.InterfaceTest(); EnumDemo.EnumDemoTest(); refVSout.refVSoutTest(); EmployeeTest.EmployeeDemo(); StudentTest.StudentTestDemo(); p.FistName = "MyFirstName"; p.LastName = "MyLastName"; Console.WriteLine("My full name is {0}", p.FullName); //p.FullName = "Sophy Yang"; read only cannot assigned value, only has get no set try { p.FistName = null; p.LastName = "Yang"; Console.WriteLine("My full name is {0} ", p.FullName); } catch (Exception ex) { Console.WriteLine(ex.Message); } ExtensionMethodDemoTest.ExtemsionMethod(); StringVsStringBuilder s_sb = new StringVsStringBuilder(); //DelegateDemo delegateDemo = new DelegateDemo(); SealedClassTest sealedClassTest = new SealedClassTest(); SealedClassDemo sealedClassDemo = new SealedClassDemo(); sealedClassDemo.Add(6, 9); SealedClassTest.runSealedClass(); //static method cannot access by new keyword object SimpleDelegate simpleDelegate = new SimpleDelegate(); simpleDelegate.NameDemo(); Console.WriteLine("Name: " + p.Name); p.Address1 = "1100 Locust Street"; p.Address2 = "Suit 100"; p.City = "Des Moines"; p.Zip = 50309; Console.WriteLine(p.SecondHomeAddress()); Console.WriteLine(p.CompanyAddress()); Console.WriteLine(""); Console.WriteLine(""); IEnumerableDemo ie = new IEnumerableDemo(); YieldReturnDemo yr = new YieldReturnDemo(); LateBindingEarlyBinding lbeb = new LateBindingEarlyBinding(); //ManyToManyEfSample2 mtm2 = new ManyToManyEfSample2(); //has error ConflictingMethodName cfMethod = new ConflictingMethodName(); int xO = 5; int yO = xO / 10; Console.WriteLine("5/10=" + yO); yO = xO % 10; Console.WriteLine("5%10=" + yO); List <string> list = new List <string>(); list.Add("a"); list.Add("b"); list.Add("c"); string result = list.Find(item => item == "a"); if (list.Find(item => item == "a") is null) { Console.WriteLine("Not Find in List item: "); } else { Console.WriteLine("Find List item: " + result); } string s = "abcabcbb"; int largeCount = 0; string largeStr = string.Empty; int i1; for (i1 = 0; i1 < s.Length; i1++) { List <string> l = new List <string>(); int count = 0; string str1 = string.Empty; for (int j = i1; j < s.Length; j++) { string s1 = s.Substring(j, 1); if (l.Find(item => item == s1) is null) { l.Add(s.Substring(j, 1)); count += 1; str1 += s1; Console.WriteLine("The large string lenght is " + largeCount + " (" + l.Count + ") " + count); } i1 = j; if (largeCount < count) { largeCount = i1; largeStr = str1; } } } Console.WriteLine("The large string lenght is " + largeCount + " (" + largeStr + ") "); Console.WriteLine("0%2=" + 0 % 2); LeetCode le = new LeetCode(); Console.ReadLine(); }