轉殖物件的幾種方法

2021-09-07 11:50:58 字數 1037 閱讀 2793

轉殖物件在開發過程中經常會遇到,有些時候需要淺轉殖,有些時候需要深轉殖,具體它們之間有什麼區別,以及實現方式有哪些,在這裡總結一下。

實現深轉殖有以下幾種方法。

**如下:

//手動複製

var user2 = new user

};

**如下:

1

//反射

2var user3 = user1.copy() as user;

擴充套件方法:

1

public

static

class

deepcopyhelper212

//引用型別

13else

1428

else

293233}

34else

if (member.membertype ==system.reflection.membertypes.property)

3545

else

4649}50

51}52}

53}54return

targetdeepcopyobj;55}

56 }

view code

**如下:

1

//序列化

2var user4 = user1.deepclone();

擴充套件方法:

1

///2

///深轉殖

3///

先序列化再反序列化

4///

5///

6///

7///

8public

static t deepclone(this t obj) where t : class

9

view code

其它還有使用表示式。

總結:手動複製效能最好,但是遇到很複雜的類的時候,工作量很大。

反射和序列化比起來,序列化更簡單。

建立物件的幾種方法

建立自定義物件的最簡單方法就是建立乙個object的例項,再為他新增屬性和方法。1 var people new object 2 people.name yewenxiang 3 people.age 24 4 people.sayname function 還可以使用物件字面量語法建立乙個物件,...

建立mat物件的幾種方法

方法一 使用mat 建構函式,這種方法簡單明瞭,可以為影象開闢記憶體,指定初始值等 mat m 4,4,cv 8uc3,scalar 0,0,255 建立三個通道的影象,並為其定義尺寸 及通道的初始值 方法二 通過建構函式進行初始化 int sz 3 mat l 3,sz,cv 8uc1,scala...

Javascript建立物件的幾種方法

工廠模式 優點 接受引數,可以無數次的呼叫這個函式,建立person物件,而每次他都可以返回乙個包含三個屬性乙個方法的物件。缺點 雖然解決了建立多個相似物件的問題,但是沒有解決物件識別的問題 即怎麼知道乙個物件的型別 建構函式模式 js中可以建立自定義的建構函式,從而定義自定義物件屬性和方法。per...