万金流
以码会友。 吾Q:578751655。 水平有限,轻喷,谢!
随笔 - 189,  文章 - 0,  评论 - 7,  阅读 - 14万

如题

很多时候使用牛顿软件(Newtonsoft.Json)。项目中的添加方式是使用NuGet,具体操作简单,此处略(实在不会,网上一抓一大把)

序列化和反序列化,仅以下例说明:

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            MyMessage msg = new MyMessage("Hello World");
            Letter letter = new Letter(), 反序列化1;
            letter.From = "重庆";
            letter.To = "安徽";
            letter.myMessage = msg;
string json_s1= JsonConvert.SerializeObject(letter); 反序列化1 = JsonConvert.DeserializeObject<Letter>(json_s1);
Console.WriteLine(json_s1); 反序列化1.showme(); Console.ReadKey(); } }
class MyMessage { public int Status { get; set; } public int Lenth { get; set; } public string Msg { get; set; } public MyMessage(string m,int s=1) { Status = s; Msg = m; Lenth = Msg is null?0:Msg.Length; } public override string ToString() { return $"The status is {Status},The lenth = {Lenth},The content is {Msg}"; } } class Letter { public string From { get; set; } public string To { get; set; } public MyMessage myMessage; public void showme() { Console.WriteLine($"This letter come from {From},and go to {To}.It is said that:{myMessage.ToString()}"); } } }
复制代码

运行结果:

1
2
{"myMessage":{"Status":1,"Lenth":11,"Msg":"Hello World"},"From":"重庆","To":"安徽"}
This letter come from 重庆,and go to 安徽.It is said that:The status is 1,The lenth = 11,The content is Hello World

  


例: 基于网络的五子棋对战程序,客户端和服务器消息格式设计(行棋)

复制代码
enum MyFlag
    {
        set,
        ok,
        error
    }
    class MyMsg
    {
        public MyFlag myFlag;
        public int i, j, c;
        public MyMsg(MyFlag f, int hang, int lie, int set_color)
        {
            myFlag = f;
            i = hang;
            j = lie;
            c = set_color;
        }
    }
复制代码

其中myFlag表示和服务器通讯的操作,枚举型,分为发送给服务器(set),收到服务器成功消息(ok),收到服务器失败消息(error)

i、j、c分别表示发送给服务器的(和服务器返回的)落子位置和颜色。

结合之前的tcp网络编程知识,试开发出完全的消息模式及程序。程序大致如下:

 

 

注:棋盘图形部分可以用Graphics对象在表单上直接画图(画圆、画矩形、画直线),上学期windows项目开发,自画报表里讲过。查点资料,略作修改即可。

 

posted on   万金流  阅读(507)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异

点击右上角即可分享
微信分享提示