首页 > 编程语言 >C#学习-------成员

C#学习-------成员

时间:2024-07-26 09:43:40浏览次数:8  
标签:string C# 成员 public ------- 访问 实例 class name

在面向对象编程(OOP)中,成员是类或对象所包含的属性、方法、事件、字段等的统称。它们定义了类的行为和状态。C# 中的成员有以下几种类型:

1. 字段(Fields)
字段是类中的变量,用于存储对象的状态。字段可以是实例字段(属于对象的每个实例)或静态字段(属于类本身)。

public class Person
{
    public string Name; // 实例字段
    public static int Population; // 静态字段
}

2. 属性(Properties)
属性是字段的扩展,提供了对字段的读写访问。属性可以包含 get 和 set 访问器。

public class Person
{
    private string name; // 私有字段

    public string Name // 公有属性
    {
        get { return name; }
        set { name = value; }
    }
}

3. 方法(Methods)
方法是类中的函数,用于定义类的行为。方法可以是实例方法(属于对象的每个实例)或静态方法(属于类本身)。

public class Person
{
    public void Speak() // 实例方法
    {
        Console.WriteLine("Hello!");
    }

    public static void ShowPopulation() // 静态方法
    {
        Console.WriteLine("Population: " + Population);
    }
}

4. 构造函数(Constructors)
构造函数是用于创建类的实例并初始化其状态的方法。构造函数的名称与类名相同,并且没有返回类型。

public class Person
{
    public string Name;

    public Person(string name) // 构造函数
    {
        Name = name;
    }
}

5. 事件(Events)
事件是类中的一种成员,用于提供通知机制。事件通常与委托一起使用。

public class Alarm
{
    public event EventHandler AlarmRang;

    public void Ring()
    {
        if (AlarmRang != null)
        {
            AlarmRang(this, EventArgs.Empty);
        }
    }
}

6. 索引器(Indexers)
索引器允许对象像数组一样使用索引来访问其内部数据。

public class Team
{
    private List<string> members = new List<string>();

    public string this[int index]
    {
        get { return members[index]; }
        set { members[index] = value; }
    }
}

7. 嵌套类型(Nested Types)
类、结构、枚举或接口可以嵌套在另一个类中。

public class OuterClass
{
    public class NestedClass
    {
        public void NestedMethod()
        {
            Console.WriteLine("Nested method");
        }
    }
}

成员的访问修饰符

成员的访问级别可以通过访问修饰符来控制:

public:公开访问,不受限制。
private:私有访问,只能在类内部访问。
protected:受保护访问,可以在类内部和派生类中访问。
internal:内部访问,只能在同一程序集内访问。
protected internal:受保护的内部访问,可以在同一程序集内或派生类中访问。
private protected:私有的受保护访问,只能在类内部和同一程序集的派生类中访问。

标签:string,C#,成员,public,-------,访问,实例,class,name
From: https://www.cnblogs.com/catlon/p/18324638

相关文章

  • APP重启 - C#小函数类推荐
          此文记录的是一个应用程序重启的函数。/***应用程序重启动AustinLiu刘恒辉ProjectManagerandSoftwareDesignerE-Mail:[email protected]:http://lzhdim.cnblogs.comDate:2024-01-1515:18:00使用方法:......
  • 洛谷题单指南-前缀和差分与离散化-P2367 语文成绩
    原题链接:https://www.luogu.com.cn/problem/P2367题意解读:对于数组s[],给指定q个区间[x,y]里每个数增加z,计算操作之后最小的数。解题思路:1、暴力做法对于每一个区间[x,y],枚举给每一个数增加z,然后遍历查找最小值,总体时间复杂度为O(N^2),不可行。2、一维差分对于给指定区间[x,......
  • 关于k8s中的pv和pvc无法绑定
    在一次申明pv和pvc时,发现两者怎么都无法绑定,以下是两个文件申明pvapiVersion:v1kind:PersistentVolumemetadata:name:my-pvspec:capacity:storage:5GiaccessModes:-ReadWriteManypersistentVolumeReclaimPolicy:RecyclestorageClassName:nfs......
  • 单机模式下ElasticSearch8(ES8设置账号密码访问)
     重置密码报错:ERROR:Failedtoresetpasswordforthe[elastic]user 修改配置文件/config/elasticsearch.yml修改或添加discovery.type:single-nodexpack.security.enabled:truexpack.security.http.ssl.enabled:falsexpack.security.enrollment.enabled:......
  • 题解:P10043 [CCPC 2023 北京市赛] 广播
    博客使用更佳:Myblog题目传送门这道题是一个标准的dp了,只不过它要倒序来做。还是分三步。初值:初值想必都知道吧,若要求最小值,就把初值设成无穷大,\(dp_{0,i}\)和\(dp_{i,0}\)都要设成\(i\),\(dp_{0,0}\)一定要赋值成\(0\),这是本人亲自犯过的错误QwQ。状态:\(dp_{i,j}......
  • 优化Python中图像中的OCR文本检测
    我目前正在用python编写一个程序,该程序获取包含大量文本的图像,将其提取到.txt文件,然后将找到的单词与另一个文件中的单词列表进行比较,并创建一些坐标(根据像素)在图像中找到的单词中,如果找到图像,则会在图像中绘制红色方块。到目前为止,我已经正确处理了坐标部分,在单词周围绘制了......
  • Linux上面部署nacos
    1)下载nacos包,并移动到/opt文件夹下面。2)解压包:unzipnacos-server-1.4.0.zip(解压之后,可以将文件移到/usr/local/文件夹下面或者保留在当前位置)3)配置Nacos:进入解压后的Nacos目录,编辑conf/application.properties文件,根据需要配置Nacos的相关参数。例如:propertiesserver.conte......
  • Manim 学习笔记(二)--文本测试
    文本测试--效果:代码:#-*-coding:utf-8-*-frommanimimport*classTransformExample(Scene):defconstruct(self):banner=ManimBanner()banner.shift(UP*0.5)self.play(banner.create(),run_time=1)self.play(banner.anima......
  • 《最新出炉》系列入门篇-Python+Playwright自动化测试-53- 处理面包屑(详细教程)
    1.简介面包屑(Breadcrumb),又称面包屑导航(BreadcrumbNavigation)这个概念来自童话故事“汉赛尔和格莱特”,当汉赛尔和格莱特穿过森林时,不小心迷路了,但是他们发现沿途走过的地方都撒下了面包屑,让这些面包屑来帮助他们找到回家的路。所以,面包屑导航的作用是告诉访问者他们在网站中......
  • Rocky Linux优化
    一、修改网卡名称为eth1、方法一(在安装系统时修改):#进入启动菜单后按Tab键,在quiet后添加net.ifnames=0biosdevname=0>vmlinuzinitrd=initrd.imginst.stage2=hd:LABEL=CentOS\x207\x20x86_64quietnet.ifnames=0biosdevname=02、方法二(安装完系统修改)[root@Rocky9~]#c......