public void SerializeArray <_Ty>(ref _Ty[] aValue, SerializeArrayNode <_Ty> serializeFunc) { int nLen = 0; if (IsLoading()) { Read(ref nLen); if (nLen < 0 || nLen > 1024 * 1024) { nLen = 0; } if (nLen <= 0) { aValue = new _Ty[0]; } else { aValue = new _Ty[nLen]; } } else { nLen = aValue != null ? aValue.Length : 0; Write(nLen); } for (int i = 0; i < nLen; ++i) { serializeFunc(this, ref aValue[i]); } }
public void SerializeArray <_Ty>(ref List <_Ty> aValue, SerializeArrayNode <_Ty> serializeFunc) where _Ty : new() { if (aValue == null) { aValue = new List <_Ty>(); } int nLen = 0; if (IsLoading()) { Read(ref nLen); if (nLen < 0 || nLen > 1024 * 1024) { nLen = 0; } aValue.Clear(); for (int i = 0; i < nLen; ++i) { _Ty value = new _Ty(); serializeFunc(this, ref value); if (value != null) { aValue.Add(value); } } } else { nLen = aValue != null ? aValue.Count : 0; Write(nLen); for (int i = 0; i < nLen; ++i) { _Ty value = aValue[i]; serializeFunc(this, ref value); } } }