在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一.写在前面的话好久没有停下来总结自己,转眼间15年过去好些天,回首过去的日子,亦或失去,亦或所得!生活的节奏,常常让我们带着急急忙忙的节奏去追赶,也许这并不是每个人所期望的生活方式!于他人,于自己,都是平凡生活中的小人物,不奢求荣华富贵,不祈求飞黄腾达,但求得心安理得,平安无恙,拥有属于自己的那一份小幸福足以!从本篇开始,慢慢悉基础,不急不躁,一步步总结,沉淀自己。也希望和各位高手们学习,愿意虚心接受你们的建议。 二.前言 C#中为了数据的安全性以及代码的拓展,定了几种访问级别,根据对应的访问修饰符,可以获取Class里面对应的字段、属性、方法等。 根据MSDN上面的解释,我们也可以理解对应修饰符的作用。https://msdn.microsoft.com/zh-cn/library/wxh6fsc7.aspx 三.常见成员类型的访问修饰符(1)接口(interface) 接口成员访问修饰符默认为public,且不能显示使用访问修饰符。 四.访问修饰符测试(1) 定义程序集AccessModifiersOne,添加DoData.cs类,分别在类中定义相关修饰符的方法。 可以看到在DoData.cs中,通过方法GetNeedData均可以访问对应的方法,GetPublicData、GetPrivateData、 /********************************************************************************
** auth: liupeng
** date: 2016/1/11 星期一 16:14:25
** desc: 访问修饰符
** Ver.: V1.0.0
*********************************************************************************/
namespace AccessModifiersOne
{
public class DoData
{
/// <summary>
/// 公共方法
/// </summary>
/// <returns></returns>
public string GetPublicData()
{
return "My Name Is Public Data";
}
/// <summary>
/// 私有方法
/// </summary>
/// <returns></returns>
private string GetPrivateData()
{
return "My Name Is Private Data";
}
/// <summary>
/// 受保护方法
/// </summary>
/// <returns></returns>
protected string GetProtectedData()
{
return "My Name Is Protected Date";
}
/// <summary>
/// 程序集级别方法
/// </summary>
/// <returns></returns>
internal string GetInternalData()
{
return "My Name Is Internal Data";
}
/// <summary>
/// 受保护程序集级别方法
/// </summary>
/// <returns></returns>
protected internal string GetProtectedInternalData()
{
return "My Name Is Prtected Internal Data";
}
/// <summary>
/// 取数据
/// </summary>
public void GetNeedData()
{
this.GetPublicData();
this.GetPrivateData();
this.GetInternalData();
this.GetProtectedData();
this.GetProtectedInternalData();
}
}
}
(2)在AccessModifiersOne程序集中添加DoDataTwo.cs,实例化一个DoData对象,可以看到对象只能访问到GetPublicData /********************************************************************************
** auth: liupeng
** date: 2016/1/11 星期一 16:28:15
** desc: 尚未编写描述
** Ver.: V1.0.0
*********************************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AccessModifiersOne
{
class DoDataTwo
{
public void GetNeedData()
{
var needDataObj = new DoData();
needDataObj.GetPublicData();
needDataObj.GetInternalData();
needDataObj.GetProtectedInternalData();
}
}
}
(3)在AccessModifiersOne程序集中添加DoDataThree.cs,同时继承DoData.cs,实例化一个DoDataThree对象,可以看到该对象可以访问GetPublicData、 /********************************************************************************
** auth: liupeng
** date: 2016/1/11 星期一 16:33:08
** desc: 尚未编写描述
** Ver.: V1.0.0
*********************************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AccessModifiersOne
{
public class DoDataThree : DoData
{
public void GetNeedAnotherData()
{
var needDataObj = new DoDataThree();
needDataObj.GetPublicData();
needDataObj.GetInternalData();
needDataObj.GetProtectedInternalData();
//访问父类的protect方法
base.GetProtectedData();
}
}
}
(4)新建程序集AccessModifiersTwo,同时添加对AccessModifiersOne程序集的引用,添加GetData.cs,实例化一个DoData对象,通过实例化对象,可以看到 /********************************************************************************
** auth: liupeng
** date: 2016/1/11 星期一 16:37:35
** desc: 尚未编写描述
** Ver.: V1.0.0
*********************************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AccessModifiersOne;
namespace AccessModifiersTwo
{
public class GetData
{
public void GetNeedData()
{
var needDataObj = new DoData();
needDataObj.GetPublicData();
}
}
}
五.结束语2016年1月瞬息间又过了差不多半个月,时间的在心头的感觉默默然,活在当下,不期盼改变世界,至少先改变自己!一步一脚印,做出来! 一个自己维护的微信公众号,目前文章不多,希望接下来的日子,会一直更新下去,写自己的生活,分享技术,希望热爱生活的技术宅,一起交流!
|
请发表评论