首页 > 编程语言 >C#学习笔记-类与名称空间

C#学习笔记-类与名称空间

时间:2024-01-21 13:12:08浏览次数:36  
标签:类库 name C# age namespace 笔记 名称 Employee 引用

1. 类和对象

  类是一个数据结构,将字段和方法组合在一个单元中。类为动态创建实例提供了定义,类的实例化称为对象。C#中的类同样支持继承和多态。C#是完全面向对象的语言,程序本身就是一个类。

  如下所示,程序的入口点Main()方法包含在Program类中(与C++不同),类的实例使用 new 运算符创建,该运算符为新的实例分配内存、调用构造函数进行初始化,并将该实例的引用返回。在该实例生命周期结束时,调用析构函数释放相关内存空间。

namespace ConsoleTest 
{
    public class Employee //定义 Employee 类
    {
        //类数据成员
        private string name;
        private int age;
    
        //类构造函数
        public Employee(string name, int age)
        {
            this.name = name;
            this.age = age;
        }
        
        //类方法
        public void displayAttribute()
        {
            Console.WriteLine("name: " + name);
            Console.WriteLine("age: " + age);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            //类的实例化
            Employee emp1 = new Employee("Tom", 20);
            Employee emp2 = new Employee("Jack", 21);

            emp1.displayAttribute();
            Console.WriteLine();
            emp2.displayAttribute();
        }
    }
}

 2. namespace(名称空间)

  namespace 用来把类和其他类型用树形结构组织在一起,也可以避免同名的类产生冲突,便于管理。名称空间的命名一般和项目名称一致。

namespace nsp1
{
    class Student { }
    class Teacher { }
    ...
}

namespace nsp2
{
    class Teacher { }
    ...
}

3. 类库的引用

  类库引用是使用 namespace 的物理基础,如果要使用某个类库下的名称空间,需要先引用此类库。类库的引用方式有两种,DLL引用和项目引用。DLL引用是黑盒引用,无源代码,通常需要有DLL文档。在DLL引用中,如果代码存在错误是无法直接修改的(无源代码情况下)。而项目引用是白盒引用,有源代码。VS中,一个 Project 可以存在多个 Solution 下,也就是说 Project 是可以共用的。

4. 依赖关系

  类与类之间,类库与类库之间,如果相互引用则它们之间就产生依赖关系。如果底层的类或类库存在问题,会影响上层的类或类库也会受到影响。在设计程序时,应该使类和类之间的依赖关系尽可能的松,追求 “高内聚,低耦合”,类库也是如此。

标签:类库,name,C#,age,namespace,笔记,名称,Employee,引用
From: https://www.cnblogs.com/owmt/p/17976083

相关文章

  • Stream toList不能滥用以及与collect(Collectors.toList())的区别
    StreamtoList()返回的是只读List原则上不可修改,collect(Collectors.toList())默认返回的是ArrayList,可以增删改查1.背景在公司看到开发环境突然发现了UnsupportedOperationException报错,想到了不是自己throw的应该就是操作collection不当。发现的确是同事使用了类似stringL......
  • C# 布尔值和条件语句:入门指南和实用示例
    C#布尔值在编程中,通常需要一个只能有两个值之一的数据类型,比如:是/否开/关真/假为此,C#有一个bool数据类型,可以取true或false的值。布尔值使用bool关键字声明布尔类型,只能取true或false的值:示例:boolisCSharpFun=true;boolisFishTasty=false;......
  • AI Weekly『1月15-21日』: OpenAI筹集资金建造AI芯片工厂;马斯克加码AI投资,共投入110亿
    AI领域本周『1月15-21日』要闻速览OpenAI首席执行官SamAltman计划筹集数十亿美元建立全球性AI芯片工厂网络,应对未来AI相关芯片的需求激增。埃隆·马斯克和SamAltman共投入110亿美元加码AI投资,展现对AI领域的重视和竞争态势。微软推出CopilotPro及Copilot移动应用,扩展至各规模企......
  • 【电商数仓6.0】笔记1
    采集项目&数据仓库项目(是企业中数据管理平台中的两个核心管理模块)采集项目:数据采集,传输为主(flume,kafka,datax,maxwell)数据仓库:以计算为主,同时存储数据(mysql,HDFS,Spark,Flink,MR,Hive) 数据库&数据仓库数据库database来源:企业中基础核心的业务数据存储:查找数......
  • 「杂题乱刷」AT_abc337_e
    题目链接题目传送门(at)题目传送门(luogu)题意简述有\(n\)瓶果汁,其中有一瓶坏的,你需要使用最少的小白鼠使得这些小白鼠能找出已经变质的果汁的编号,对于每只小白鼠,你可以给他们喝任意瓶不重复的果汁,每瓶果汁可以被平均分。解题思路妙妙构造题。思路一:拿\(n\)个小白鼠,每个小......
  • 【计网笔记】计算机网络的类别
    计算机网络的类别计算机网络的定义计算机网络的精确定义并未统一。关于计算机网络的较好的定义是这样的[PETE11]:计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同......
  • ABC 337
    较简单的场。submissions.很久以后复健abc第一场。G题开太慢没\(2400\)差评。A直接加。B如果\(s=\texttt{rev}(s)\),则是Yes,否则是No。CThereisexactlyonewaytoarrangethe\(N\)peopleconsistentwiththeinformationgiven.所以给出的是一条链。直接记......
  • 【docker-compose】Redis安装教程
    仅供学习参考,请勿轻易在生产环境使用0.文件目录下面的文件按照这个目录层级放置,首先创建/docker/redis文件夹,/docker/redis对应下边图中REDIS。1.创建目录mkdir-p/docker/redis/conf/docker/redis/data/docker/redis/logschmod-R777/docker/redis/conf/doc......
  • python 异步回调传递参数 warning cell-var-from-loop
    warning:cell-var-from-loopbing解释foriinrange(10):f=lambdai:iprint(f())Thewarningmessagecell-var-from-loopisemittedbyPylint,aPythoncodeanalysistool.Thiswarningisraisedwhenavariableisdefinedinsidealoopandused......
  • ABC337 D Cheating Gomoku Narabe 题解
    QuestionABC337DCheatingGomokuNarabe给出一个\(H\timesW\)的矩阵,由o,x,.组成,一次操作为把一个.变成o,问需要最少多少次操作使得横着或竖着有连续的\(K\)个oSolution先来考虑只有一行的情况,我们定义一个长度为\(K\)的"窗口",假设需要把这个"窗口"里面的所有......