博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#基础温习(2):温习控制台程序(二)
阅读量:5058 次
发布时间:2019-06-12

本文共 4344 字,大约阅读时间需要 14 分钟。

前面文章我介绍了有关控制台应用程序的一些理论内容,这一节我用来写一些实例,知道了原理不练是不行的,下面我分写一些实例供大家练习参考。

实例1:读取输入数据并实现简单的加减乘除

直接上代码:
using System;namespace HelloWorld{    class Program    {        static void Main(string[] args)        {            Console.WriteLine("请输入一个字符串:");            string strRead = Console.ReadLine();            Console.WriteLine("你输入的字符串是:" + strRead);            Console.WriteLine("请输入一个数:");            double num1 = Convert.ToDouble(Console.ReadLine());            Console.WriteLine("请输入另一个数:");            double num2 = Convert.ToDouble(Console.ReadLine());            Console.WriteLine("你输入的数分别是:"+"num1="+num1+";"+"num2="+num2);            Console.WriteLine("num1+num2="+(num1+num2));            Console.WriteLine("num1×num2=" + (num1 * num2));            Console.WriteLine("num1÷num2="+(num1/num2));            Console.WriteLine("num1-num2="+(num1-num2));            Console.ReadKey();        }    }}
下面是运行效果图:  

实例2:C#实现数据序列化(json格式)

代码:
using System;using System.Web.Script.Serialization;namespace Serializer{    class Program    {        static void Main(string[] args)        {            Person person=new Person();            person.Name = "木杉";            person.Id = "1";            JavaScriptSerializer serializer=new JavaScriptSerializer();            string strSerializer = serializer.Serialize(person);            Console.WriteLine("person序列化成json格式的结果是:");            Console.WriteLine(strSerializer);            Console.WriteLine("strSerializer反序列化的结果是:");            Person dePerson = serializer.Deserialize
(strSerializer); Console.WriteLine(dePerson.ToString()); Console.ReadKey(); } } internal class Person { public string Id { set; get; } public string Name { set; get; } public override string ToString() { return "反序列化后成为对象,然后直接转化现在的呈现形式:Name=" +this.Name+ "Id=" + this.Id; } }}
运行结果:   Note:1.在这个demo中我们需要注意JavaScriptSerializer是在System.Web.Script.Serialization命名空间下,使用前需要先添加引用到我们的项目,然后我们才可以直接使用。而System.Web.Script.Serialization命名空间在引用dll的时候应该引用System.Web.Extensions.dll;我用的是Visual Studio 2010可是引用后报错了,如下:   具体是什么问题请参考:.NET Framework 4 与 .NET Framework 4 Client Profile,解决了以后我们的运行结果如上。 2.可以使用 ScriptIgnore属性标记不序列化公共属性或公共字段。 把我们的实体类改成如下格式:
internal class Person    {        [ScriptIgnore]        public string Id { set; get; }        public string Name { set; get; }        public override string ToString()        {            return "反序列化后成为对象,然后直接转化现在的呈现形式:Name=" +this.Name+ "Id=" + this.Id;        }    }
运行结果变成:     note:如果想了解Person类的修饰符,请参考:详解C#防访问修饰符:public,private,protected,internal

实例3:另一种方式C#实现数据序列化(json格式)

 
using System;using System.IO;using System.Runtime.Serialization;using System.Runtime.Serialization.Json;using System.Text;namespace Json{    class Program    {        static void Main(string[] args)        {            Person person=new Person();            person.Id = "1";            person.Name = "木杉";            DataContractJsonSerializer json=new DataContractJsonSerializer(person.GetType());            string strJson = string.Empty;            using (MemoryStream stream=new MemoryStream())            {                json.WriteObject(stream,person);                strJson = Encoding.UTF8.GetString(stream.ToArray());            }            Console.WriteLine("person序列化后的结果是:");            Console.WriteLine(strJson);            using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(strJson)))            {                DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Person));                Person p = (Person)serializer.ReadObject(ms);            }            Console.WriteLine("strJson反序列化后的结果是:");            Console.WriteLine(person.ToString());            Console.ReadKey();        }    }    [DataContract]    internal class Person    {         [DataMember(Name = "id")]         public string Id { set; get; }         [DataMember(Name = "name")]        public string Name { set; get; }        public override string ToString()        {            return "反序列化后成为对象,然后直接转化现在的呈现形式:Name=" + this.Name + "Id=" + this.Id;        }    }}
结果:   Note:运行前需要添加 System.Runtime.Serialization.dll和System.ServiceModel.dll,System.ServiceModel.Web.dll这样才可以正常运行。 代码需要多多练习我们才能熟悉,因此写了几个简单的实例,希望朋友们能写更多的实例去熟练语言。

转载于:https://www.cnblogs.com/vsdot/archive/2013/04/12/3263333.html

你可能感兴趣的文章
java对象的深浅克隆
查看>>
Hadoop流程---从tpch到hive
查看>>
数据结构3——浅谈zkw线段树
查看>>
Introduction to my galaxy engine 2: Depth of field
查看>>
V2019 Super DSP3 Odometer Correction Vehicle List
查看>>
Python 3.X 练习集100题 05
查看>>
今时不同往日:VS2010十大绝技让VS6叹服
查看>>
设计器 和后台代码的转换 快捷键
查看>>
在线视频播放软件
查看>>
用代码生成器生成的DAL数据访问操作类 基本满足需求了
查看>>
28初识线程
查看>>
Monkey测试结果分析
查看>>
Sublime Text 3 设置
查看>>
浅谈C++底层机制
查看>>
STL——配接器、常用算法使用
查看>>
第9课 uart
查看>>
Range和xrange的区别
查看>>
BZOJ 1010 [HNOI2008]玩具装箱 (斜率优化DP)
查看>>
java-动态规划算法学习笔记
查看>>
STL容器之vector
查看>>