C#:接口中如何将某个值类型的字段传null?

在实际对接第三方接口时,偶尔会有一些字段在某些情况下是不需要传值的。那如何处理呢?

有两种方法:

1、将值类型改为可空类型;

2、定义基类,基类包含所有必须要传的字段,子类则加入偶尔需要传的字段。

下面以某个场景为例来说明:

有一个接口,传 x  和  y 两个int参数。 x 有时可不传,y 必须要传。在不传x的情况下如何处理?
 

using System;
using System.IO;

namespace Study
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //有一个接口,传 x  和  y 两个int参数。 x 可传可不传,y 必须要传。在不传x的情况下如何处理
            var orginal = new ParaOrginal() { x = 0, y = 1 };
            var way1 = new ParaWay1() { y = 1 };
            var way2 = new ParaWay2Base() { y = 1 };

            Console.WriteLine("原 始  类:\n{0}\n", Newtonsoft.Json.JsonConvert.SerializeObject(orginal));
            Console.WriteLine("第1种方法:将 x 改为可空类型:\n{0}\n", Newtonsoft.Json.JsonConvert.SerializeObject(way1));
            Console.WriteLine("第2种方法:设计基类:\n{0}", Newtonsoft.Json.JsonConvert.SerializeObject(way2));

            Console.Read();
        }
    }

    /// <summary>
    /// 原始类
    /// </summary>
    public class ParaOrginal
    {
        public float x { get; set; }

        public float y { get; set; }
    }

    /// <summary>
    /// 第1种方法:将 x 改为可空类型
    /// </summary>
    public class ParaWay1
    {
        public float? x { get; set; }

        public float y { get; set; }
    }

    /// <summary>
    /// 第2种方法:设计基类。包含所有必须要传的字段
    /// </summary>
    public class ParaWay2Base
    {
        public float y { get; set; }
    }

    /// <summary>
    /// 偶尔要传的字段
    /// </summary>
    public class ParaWay2: ParaWay2Base
    {
        public float x { get; set; }
    }
}

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值