This week learned a lot about C # about interface, array of knowledge, here briefly review a few easy to mix places, heavy in understanding.
First, Interface
Use as to avoid exception without an interface when polymorphic:
Document [] Folder = new Document[5];for (int i = 0; i < 5; i++) {if (i% 2 = = 0) {Folder[i] = new Bigdocumen T ("Big Document #" + i); } else {Folder[i] = new Littledocument ("Little Document #" + i); }}
If little document does not inherit read (), the direct call will have exception.
foreach (Document doc in folder) { istorable Isdoc = doc as istorable; if (Isdoc! = null) { isdoc.read (); }
Else
{ Console.WriteLine ("Istorable not supported");
}//...}
This example is simple and clear
To explicitly implement an interface:
Using system;using system.collections.generic;using system.linq;using system.text;using System.Threading.Tasks; Namespace consoleapplication2{ class program { interface istorable { void Read (); void Write (); } Interface Italk { void talk (); void Read (); public class document:istorable, Italk {public void Read () {Console.WriteLine ("read");} public void Write () {Console.WriteLine ("Write");} void Italk.read () {Console.WriteLine ("Read of Italk");} public void Talk () {Console.WriteLine ("Talk");} } static void Main (string[] args) { document Doc1 = new Document (); Doc1. Read (); Italk doc2 = Doc1; Doc2. Read ();}} }
1. Explicitly implement no public
2. An explicit call requires a new Italk object (see Code).
Two, Array
New array of 3x5 starting with (2,3):
int[] Lengthsarray = new Int[2] {3, 5};
int[] Boundsarray = new Int[2] {2, 3};
Array Multidimensionalarray = Array.CreateInstance (typeof (String), Lengthsarray, Boundsarray);
C # Insights and experiences (II.)