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

无锡外贸网站建设水平优化

无锡外贸网站建设,水平优化,网站设计的尺寸,做网站备案好还是不备案好目录一、为什么要扩展属性二、如何做?一、为什么要扩展属性 属性是一个类的特征,随着开发的不断升级,这种特征可能在一直变化,有时候为了向下兼容,一般属性的数量都是直接递增的。 例如:一个Person类&…

目录

    • 一、为什么要扩展属性
    • 二、如何做?

一、为什么要扩展属性

属性是一个类的特征,随着开发的不断升级,这种特征可能在一直变化,有时候为了向下兼容,一般属性的数量都是直接递增的。

例如:一个Person类,他在项目初期,只有一个属性Age,可随着项目升级,可能需要Name,Address,甚至Price。

public class Person
{/// <summary>/// 年龄/// </summary>public int Age { get; set; }//常规属性
}

那么常规做法就是继承,然后在子类添加属性。亦或者修改源码,重新编译。

无论哪一种都有很大的麻烦事。

继承,会让显式的Person类无法使用声明到子类的属性,到时候必须进行强制转换,而一旦继承分支多起来的话,将非常糟糕。

而重新编译,带来的问题就更大了,总不能把属性都声明在父类吧。何况还有dll版本依赖问题,同事推脱问题,巴拉巴拉。

二、如何做?

我们可以在一开始,就将Person类按如下声明。继承DependencyObject。这里需要你先安装TouchSocket的库。

public class Person : DependencyObject
{/// <summary>/// 年龄/// </summary>public int Age { get; set; }//常规属性
}

然后,就Ok了。当后续你需要什么属性的时候,自己声明扩展即可。

这样,你就可以随意的往Person类中添加属性了。

public static class DependencyExtensions
{/// <summary>/// 依赖项/// </summary>public static readonly DependencyProperty<int> MyPropertyProperty2 =DependencyProperty<int>.Register("MyProperty2", typeof(DependencyExtensions), 10);/// <summary>/// 设置MyProperty2/// </summary>/// <typeparam name="TClient"></typeparam>/// <param name="client"></param>/// <param name="value"></param>/// <returns></returns>public static TClient SetMyProperty2<TClient>(this TClient client, int value) where TClient : IDependencyObject{client.SetValue(MyPropertyProperty2, value);return client;}/// <summary>/// 获取MyProperty2/// </summary>/// <typeparam name="TClient"></typeparam>/// <param name="client"></param>/// <returns></returns>public static int GetMyProperty2<TClient>(this TClient client) where TClient : IDependencyObject{return client.GetValue(MyPropertyProperty2);}
}

使用

Person person =new Person();
person.SetMyProperty2(2);//扩展属性必须通过扩展方法
int value=person.GetMyProperty2();

完工。

具体的使用细节可看TouchSocket依赖属性

http://www.dinnco.com/news/65131.html

相关文章:

  • 域名代备案三明网站seo
  • 首都航空公司官方网站线上网络平台推广
  • 新闻资讯建站服务商搜索引擎优化免费
  • 连城县住房和城乡建设局 网站百度排名优化软件
  • 临朐网站建设建站做销售记住这十句口诀
  • HTML可以做彩票网站吗买卖链接网
  • 河北省做网站的企业网站建设策划书范文
  • 用织梦做网站调用乱码深圳推广公司介绍
  • 苍南县龙港哪里有做网站长沙seo网站管理
  • 境外网站重庆森林讲的什么内容
  • 加强公司网站建设及数据库的通知北京网站优化服务商
  • 广告收益平台茶叶seo网站推广与优化方案
  • 天津外贸网站建设公司百度首页网站推广多少钱一年
  • 做网站是买服务器还是买主机专业网站建设
  • 中国建设银行app登录密码忘记了seo线上培训机构
  • wordpress密码重置密码seo系统推广
  • 建网站 免费千锋教育郑州校区
  • 淄博网泰专业做网站百度网页电脑版入口
  • 网站建设基础电子制作网站
  • 网站制作百度网盘天津百度推广中心
  • 政府网站开发专业百度网盘app下载安装手机版
  • 网站空间的存放种类常用seo站长工具
  • 南宁做网站推广的公司做网站seo优化
  • 大前端d8扁平化wordpress模板seo优化顾问服务
  • 网站每年空间域名费用及维护费网络营销渠道有哪三类
  • 长春做网站优化哪家好google移动服务应用优化
  • 江西省工程建设网站简述网络营销的含义
  • 企业培训考试app推广资源seo
  • wordpress小工具代码修改网站标题算关键词优化吗
  • 武汉网络兼职网站建设天津百度分公司