1.索引器就是讓你使用類就像使用數組一樣。例如: public class car { int[] carnum = new int[10]; public car() { } public int this [ int i ] { get { return carnum[i] ; } set { carnum[i] = value ;} }
}
public static void Main() { car num = new car(); num[0] = 1; Console.WriteLine( num[0] ); Console.ReadLine(); }
1.索引器就是讓你使用類就像使用數組一樣。例如: public class car { int[] carnum = new int[10]; public car() { } public int this [ int i ] { get { return carnum[i] ; } set { carnum[i] = value ;} }
}
public static void Main() { car num = new car(); num[0] = 1; Console.WriteLine( num[0] ); Console.ReadLine(); } 抽象工厂用于提供创建不同对象的统一接口... 4.一般用函數傳參數時,要知道參數的類型,如果不知道,就把它裝箱成object,然後傳過去後,用gettype(),取得類型後,再使用。还差最后一个
2.抽象工厂模式是一种创建型模式,用于当需要返回一系列相关类中的某一个,而每个类都能根据需要返回不同的对象时使用.抽象工场模式包括4种对象. a 抽象工厂接口/类 AbstractFactory,它的创建与应用程序与无逻辑无关,通常使用接口或抽象类实现. b 具体工厂类ConcreteFactory1/ConcreteFactory2,它们的创建与业务逻辑有着密切关系,通常使用具体的类实现.通常调用该类中的方法可获得具体产品实例. c 抽象产品接口/类PrpductA/PrpductB,该对象中包括具体产品类的父类,或者具体产品类所实现的接口,所以定义的内容与业务逻辑相关. d 具体产品类ProductA1/A2/B1/B2,它们实现PrpductA/PrpductB接口. 推荐你看PetShop4.0 这个就是用的AbstractFactory模式
送你个序列化的例子: using System; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Soap; //using System.Runtime.Serialization.Formatters.Binary;public class Test { public static void Main() { //Creates a new TestSimpleObject object. TestSimpleObject obj = new TestSimpleObject(); Console.WriteLine("Before serialization the object contains: "); obj.Print(); //Opens a file and serializes the object into it in binary format. Stream stream = File.Open("data.xml", FileMode.Create); SoapFormatter formatter = new SoapFormatter(); //BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, obj); stream.Close();
//Empties obj. obj = null;
//Opens file "data.xml" and deserializes the object from it. stream = File.Open("data.xml", FileMode.Open); formatter = new SoapFormatter(); //formatter = new BinaryFormatter(); obj = (TestSimpleObject)formatter.Deserialize(stream); stream.Close(); Console.WriteLine(""); Console.WriteLine("After deserialization the object contains: "); obj.Print(); } } // A test object that needs to be serialized. [Serializable()] public class TestSimpleObject { public int member1; public string member2; public string member3; public double member4;
// A field that is not serialized. [NonSerialized()] public string member5;
public class car
{
int[] carnum = new int[10];
public car()
{
}
public int this [ int i ]
{
get { return carnum[i] ; }
set { carnum[i] = value ;}
}
}
public static void Main()
{
car num = new car();
num[0] = 1;
Console.WriteLine( num[0] );
Console.ReadLine();
}
强.
public class car
{
int[] carnum = new int[10];
public car()
{
}
public int this [ int i ]
{
get { return carnum[i] ; }
set { carnum[i] = value ;}
}
}
public static void Main()
{
car num = new car();
num[0] = 1;
Console.WriteLine( num[0] );
Console.ReadLine();
}
抽象工厂用于提供创建不同对象的统一接口...
4.一般用函數傳參數時,要知道參數的類型,如果不知道,就把它裝箱成object,然後傳過去後,用gettype(),取得類型後,再使用。还差最后一个
看看这个
a 抽象工厂接口/类 AbstractFactory,它的创建与应用程序与无逻辑无关,通常使用接口或抽象类实现.
b 具体工厂类ConcreteFactory1/ConcreteFactory2,它们的创建与业务逻辑有着密切关系,通常使用具体的类实现.通常调用该类中的方法可获得具体产品实例.
c 抽象产品接口/类PrpductA/PrpductB,该对象中包括具体产品类的父类,或者具体产品类所实现的接口,所以定义的内容与业务逻辑相关.
d 具体产品类ProductA1/A2/B1/B2,它们实现PrpductA/PrpductB接口.
推荐你看PetShop4.0 这个就是用的AbstractFactory模式
using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Soap;
//using System.Runtime.Serialization.Formatters.Binary;public class Test {
public static void Main() { //Creates a new TestSimpleObject object.
TestSimpleObject obj = new TestSimpleObject(); Console.WriteLine("Before serialization the object contains: ");
obj.Print(); //Opens a file and serializes the object into it in binary format.
Stream stream = File.Open("data.xml", FileMode.Create);
SoapFormatter formatter = new SoapFormatter(); //BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, obj);
stream.Close();
//Empties obj.
obj = null;
//Opens file "data.xml" and deserializes the object from it.
stream = File.Open("data.xml", FileMode.Open);
formatter = new SoapFormatter(); //formatter = new BinaryFormatter(); obj = (TestSimpleObject)formatter.Deserialize(stream);
stream.Close(); Console.WriteLine("");
Console.WriteLine("After deserialization the object contains: ");
obj.Print();
}
}
// A test object that needs to be serialized.
[Serializable()]
public class TestSimpleObject { public int member1;
public string member2;
public string member3;
public double member4;
// A field that is not serialized.
[NonSerialized()] public string member5;
public TestSimpleObject() { member1 = 11;
member2 = "hello";
member3 = "hello";
member4 = 3.14159265;
member5 = "hello world!";
}
public void Print() { Console.WriteLine("member1 = '{0}'", member1);
Console.WriteLine("member2 = '{0}'", member2);
Console.WriteLine("member3 = '{0}'", member3);
Console.WriteLine("member4 = '{0}'", member4);
Console.WriteLine("member5 = '{0}'", member5);
}
}
用BOXING把值类型转化为类类型在某些情形是有必要也是必须的,比如
int i=23;
Console.WriteLine(i);
现在就已经悄悄地把i装箱成了object了……
有关BOXING与UNBOXING的内容比较复杂,不是一句两句能说清楚的,其实楼主的四个问题都是些较高级的问题……
本人愚见