C#オブジェクト比較(値型、参照型)

黄舟
リリース: 2017-02-15 11:12:24
オリジナル
1423 人が閲覧しました

 #region 引用对象比较 ///  /// 引用对象比较 ///  ///  ///  ///  public static bool CompareObject(object objA, object objB) { bool flag = false; if (objA == null || objB == null) { flag = false; } else if (objA == DBNull.Value && objB != DBNull.Value) { flag = false; } else if (objA != DBNull.Value && objB == DBNull.Value) { flag = false; } else if (objA == DBNull.Value && objB == DBNull.Value) { //objA objB 对应的列类型已经比较过 类型已判断 值一致 flag = true; } else if (objA.GetType() != objB.GetType()) { flag = false; } else if (objA is int || objA is short || objA is long || objA is float || objA is double || objA is decimal) { //int 01与1 if (objA is int) { if ((int)objA == (int)objB) { flag = true; } } else if (objA is short) { if ((short)objA == (short)objB) { flag = true; } } else if (objA is long) { if ((long)objA == (long)objB) { flag = true; } } else if (objA is float) { if ((float)objA == (float)objB) { flag = true; } } else if (objA is double) { if ((double)objA == (double)objB) { flag = true; } } else if (objA is decimal) { if ((decimal)objA == (decimal)objB) { flag = true; } } } else { string strA = MetadataXmlSerializer.ToXMLString(objA); string strB = MetadataXmlSerializer.ToXMLString(objB); if (strA == strB) { flag = true; } } return flag; } #endregion
        
ログイン後にコピー



ちょっとした注意:

渡された 2 つの値が dataRow 内のセルの値である場合は、まず型を比較してから、次の場合にこのメソッドを呼び出してください。型は一貫しています

deep コードの一部をコピーします:

C# エンティティ クラスのシリアル化と逆シリアル化 1 (XmlSerializer)

C# エンティティ クラスのシリアル化と逆シリアル化 2 (DataContractSerialize)r)

上記は C# オブジェクトの比較 (値型、参照型) の内容です。さらに関連する内容については、PHP 中国語 Web サイト (m.sbmmt.com) を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!