代碼結構如下圖:
2、多參類using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
namespace Test_Webser.業務代碼
{
/// <summary>
/// Summary description for Web服務
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class Web服務 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod]
public string TestSer()
{
//先實例化邏輯代碼類
Test_Webser.Com.邏輯代碼 Ljdm = new Test_Webser.Com.邏輯代碼();
//再實例化參數類
Test_Webser.Com_存放邏輯代碼_.多參類 Dcl=new Test_Webser.Com_存放邏輯代碼_.多參類();
//通過屬性傳值給字段
Dcl.a = "a";
Dcl.b = "b";
Dcl.c = "c";
Dcl.d = "d";
Dcl.e = "e";
Dcl.f = "f";
Dcl.g = "g";
//聲明泛型
List<Test_Webser.Com_存放邏輯代碼_.多參類> bb = new List<Test_Webser.Com_存放邏輯代碼_.多參類>();
Ljdm.Test(bb);
return "示例代碼";
}
}
}
3、邏輯代碼類using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Test_Webser.Com_存放邏輯代碼_
{
public class 多參類
{
private string aField;
private string bField;
private string cField;
private string dField;
private string eField;
private string fField;
private string gField;
public string a
{
get { return aField; }
set { aField = value; }
}
public string b
{
get { return bField; }
set { bField = value; }
}
public string c
{
get { return cField; }
set { cField = value; }
}
public string d
{
get { return dField; }
set { dField = value; }
}
public string e
{
get { return eField; }
set { eField = value; }
}
public string f
{
get { return fField; }
set { fField = value; }
}
public string g
{
get { return gField; }
set { gField = value; }
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Test_Webser.Com
{
public class 邏輯代碼
{
//傳遞泛型參數
public string Test(List<Test_Webser.Com_存放邏輯代碼_.多參類> CsList)
{
return "函數舉例,函數內部可以處理傳遞過來的泛型參數";
}
}
}
性能注意事項:
在決定使用IList<T> 還是使用ArrayList類(兩者具有類似的功能)時,記住IList<T> 類在大多數情況下執行得更好並且是類型安全的。
如果對IList<T> 類的類型 T 使用引用類型,則兩個類的行為是完全相同的。但是,如果對類型 T 使用值類型,則需要考慮實現和裝箱問題。
用微軟的話講:
“添加到 ArrayList 中的任何引用或值類型都將隱式地向上強制轉換為 Object。如果項是值類型,則必須在將其添加到列表中時進行裝箱操作,在檢索時進行取消裝箱操作。強制轉換以及裝箱和取消裝箱操作都會降低性能;在必須對大型集合進行循環訪問的情況下,裝箱和取消裝箱的影響非常明顯。”