当前位置: 首页 > news >正文

2.C#中泛型在方法Method上的实现

  • 阅读目录

        一:C#中泛型在方法Method上的实现

        把Persion类型序列化为XML格式的字符串,把Book类型序列化为XML格式的字符串,但是只写一份代码,而不是public static string GetSerializeredString(Book book)这个方法写一份,再public static string GetSerializeredString(Persion persion)再写一份方法,而是在方法的调用时候再给他传数据类型的类型

     1 using System;
     2 using System.Collections.Generic;
     3 using System.IO;
     4 using System.Linq;
     5 using System.Text;
     6 using System.Threading.Tasks;
     7 using System.Xml.Serialization;
     8 
     9 namespace GenericMethod2
    10 {
    11     class Program
    12     {
    13         static void Main(string[] args)
    14         {
    15             Book book = new Book();
    16             book.BookNumber = "001";
    17             book.Name = "《西游记》";
    18 
    19             Person person = new Person();
    20             person.PersonName = "张三";
    21 
    22             string bookXMLString = GetSerializeredString<Book>(book);
    23 
    24             string personXMLString = GetSerializeredString<Person>(person);
    25 
    26             Console.WriteLine(bookXMLString);
    27 
    28             Console.WriteLine("--------------");
    29 
    30             Console.WriteLine(personXMLString);
    31             Console.ReadLine();
    32         }
    33 
    34         /// <summary>
    35         /// 根据对象和泛型得到序列化后的字符串
    36         /// </summary>
    37         /// <typeparam name="T"></typeparam>
    38         /// <param name="t"></param>
    39         /// <returns></returns>
    40         public static string GetSerializeredString<T>(T t)
    41         {
    42             //1.step 序列化为字符串
    43             XmlSerializer xmlserializer = new XmlSerializer(typeof(T));
    44             MemoryStream ms = new MemoryStream();
    45             xmlserializer.Serialize(ms, t);
    46             string xmlString = Encoding.UTF8.GetString(ms.ToArray());
    47 
    48             return xmlString;
    49         }
    50 
    51     }
    52 
    53     [Serializable()]
    54     [XmlRoot]
    55     public class Book
    56     {
    57         string _booknumber = "";
    58         [XmlElement]
    59         public string BookNumber
    60         {
    61             get { return _booknumber; }
    62             set { _booknumber = value; }
    63         }
    64 
    65         string _name = "";
    66         [XmlElement]
    67         public string Name
    68         {
    69             get { return _name; }
    70             set { _name = value; }
    71         }
    72     }
    73 
    74     [Serializable()]
    75     [XmlRoot]
    76     public class Person
    77     {
    78         string _personName = "";
    79         [XmlElement]
    80         public string PersonName
    81         {
    82             get { return _personName; }
    83             set { _personName = value; }
    84         }
    85     }
    86 
    87 }

     

转载于:https://www.cnblogs.com/menglin2010/p/5223657.html

相关文章:

  • 简单的苗为课堂搜索版式编写《超链接》
  • 深入字节码 -- 计算方法执行时间
  • Building QT projects from the command line
  • http 状态码(转载)
  • 集成Diagram Viewer跟踪流程
  • PHP 7.0.4 Windows升级
  • 发现一个nginx LUA开发Web App的框架
  • golang笔记——string
  • 【转】Android Support v4、v7、v13的区别和应用场景
  • 【HDOJ】4326 Game
  • js 定义类对象
  • Android 解决onInterceptTouchEvent只能拦截到Down事件
  • 本地使用SVN编辑发布远程SAE工程
  • Oracle_spatial的空间操作符介绍
  • 用JavaScript代码实现Excel表格的办法
  • 0x05 Python数据分析,Anaconda八斩刀
  • CODING 缺陷管理功能正式开始公测
  • iOS 颜色设置看我就够了
  • IOS评论框不贴底(ios12新bug)
  • java小心机(3)| 浅析finalize()
  • js作用域和this的理解
  • MySQL用户中的%到底包不包括localhost?
  • node.js
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 力扣(LeetCode)965
  • 前端之React实战:创建跨平台的项目架构
  • 让你的分享飞起来——极光推出社会化分享组件
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 通过npm或yarn自动生成vue组件
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • #13 yum、编译安装与sed命令的使用
  • #LLM入门|Prompt#3.3_存储_Memory
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (附源码)计算机毕业设计ssm电影分享网站
  • (四)linux文件内容查看
  • (转) ns2/nam与nam实现相关的文件
  • (转载)Linux网络编程入门
  • .Net core 6.0 升8.0
  • .NET Core中的去虚
  • .net wcf memory gates checking failed
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
  • [51nod1610]路径计数
  • [Android]Android P(9) WIFI学习笔记 - 扫描 (1)
  • [BZOJ 1032][JSOI2007]祖码Zuma(区间Dp)
  • [C/C++] C/C++中数字与字符串之间的转换
  • [CakePHP] 在Controller中使用Helper
  • [emacs] CUA的矩形块操作很给力啊
  • [Excel] vlookup函数
  • [HEOI2013]ALO
  • [LeetCode]—Longest Palindromic Substring 最长回文子串
  • [Linux] Linux入门必备的基本指令(不全你打我)
  • [MQ]常用的mq产品图形管理web界面或客户端