首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C# 基础知识系列- 4 面向对象

简单来讲,比如我有一只钢笔,那么我就可以通过分析,可以得到 这只钢笔的材第是塑料,品牌是个杂牌 ,里面装的墨是黑色的,可以用。这时候就能建立一个钢笔的模型,它在这里应该有这些属性: ?...图是一个不正确的UML类图,但是可以简单的概述一下我们抽象的结果。这个图就描述了一个我们抽象出来的钢笔类应该有哪些特性,而我手里的那只钢笔就可以看做是钢笔类的一个实例。...简单来讲,面向对象编程就是针对一个事件或者说一个过程,找到这个过程中参与的所有人、事务或者相对独立的个体,按照他们在这个过程中表现,提取出他们的特性,描述他们的行为,然后按照类别不同再抽象出类来。...如示例所述,B类在Look上与其父类A类有着一致的行为和表现,那么B就可以省略了Look的定义和描述,沿用父类的方法。通过继承可以很快地建立一套丰富的方法体系。...而且类是继承,接口是实现,一个类只能有一个父类,接口可以有多个。

50730
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    用C#写接口是一种什么样的体验

    先说下观点,我认为用Node.JS写接口是世界第一的,若不是工作需要,我是不高兴去学C#写接口的,不接受反驳,没错,我们Javascript就是可以为所欲为进行前后端开发,脚本之王不是盖的。...,他让你填写的表单就是一个POST接口的例子,然后想想传文件啊,不会那么想不开就GET吧,你可以把它理解成是数据的加密传输,但不等同于。...基于GET请求的返回JSON格式的示例,一个一言API的例子,具体如下: 内容 说明 接口地址 {ataolaAPI}/api/hitokoto 返回格式 JSON 请求方式 GET 请求示例 {ataolaAPI...内容 说明 接口地址 {ataolaAPI}/api/values 返回格式 JSON 请求方式 POST 请求示例 {ataolaAPI}/api/values 这里的返回参数和请求参数就简单的以一张用户表为例...具体实现 第一步:创建一个在线卑微的.NET项目,具体看楼下,多图预警。 ? ? ? ? ? ? 至此,我们创建完了基于C#的Web API项目,接下来我们就一个一个搞吧 。

    2.1K30

    C#接口的作用(经典)

    C#接口是一个让很多初学C#者容易迷糊的东西,用起来好像很简单,定义接口,里面包含方法,但没有方法具体实现的代码,然后在继承该接口的类里面要实现接口的所有方法的代码,但没有真正认识到接口的作用的时候就觉得用接口是多此一举...关于接口的作用,网上有一位就真的深入浅出给我们做了很好理解的分析。...IBark接口,那么他就可以放心大胆的调用Bark()方法,而不用管Bark()方法具体是如何实现的.比如,我们另外写了一个类. 1 public class Cat:IBark 2 { 3 public...,可是由于用户需要他们都实现一个关于"叫"的方法.这就要对他们进行一种约束.让他们都继承于IBark接口,目的是方便统一管理.另一个是方便调用.当然了,不使用接口一样可以达到目的.只不过这样的话,这种约束就不那么明显...,如果这样类还有Duck类等等,比较多的时候难免有人会漏掉这样方法.所以说还是通过接口更可靠一些,约束力更强一些.

    1.7K20

    一个32岁入门的70后程序员给我的启示

    一个32岁入门的70后程序员给我的启示 大家好,我是帅气小伙,今天为大家带来一个非常励志,让我反思的故事。今天为大家讲的是我父亲是如何用行动教会我成为程序员的。...岁月的锤炼 圆口接口的键盘,2003年的 有人问这个键盘难道没有擦过吗?不是的,是擦不掉的岁月痕迹。如果有注意到细节的朋友会发现,程序员什么键位用得最多。...但是我爸的笔记,我每次问他,这是什么项目的,他都能记得很清楚,当然他当时入门的时候是非常痛苦的,一个英文单词都不懂,可想而知。...原来嵌入式开发所做的事就是负责把各个功能模块合理设计,用程序去调度。现在成熟的芯片都是厂商写好了程序,提供外部调用接口,开发人员并不需要了解他里面的内容就可以开发了。这对我以后学编程启发很大。...这是它给我提供的串口应答式发送的流程(可能有错) 我把我爸逼成了伪全栈 大二时候的我,学了C#,会做一下简单的winform程序,然后就开始飘飘然了,跟我爸吹牛了,当时我爸高兴坏了,直接就给我接了一个真实的项目

    84890

    一个32岁入门的70后程序员给我的启示

    大家好,今天为大家带来一个非常励志,让我反思的故事。今天为大家讲的是我父亲是如何用行动教会我成为程序员的。 岁月的锤炼   圆口接口的键盘,2003 年的   有人问这个键盘难道没有擦过吗?...但是我爸的笔记,我每次问他,这是什么项目的,他都能记得很清楚,当然他当时入门的时候是非常痛苦的,一个英文单词都不懂,可想而知。...原来嵌入式开发所做的事就是负责把各个功能模块合理设计,用程序去调度。现在成熟的芯片都是厂商写好了程序,提供外部调用接口,开发人员并不需要了解他里面的内容就可以开发了。这对我以后学编程启发很大。...这是它给我提供的串口应答式发送的流程(可能有错) 我把我爸逼成了伪全栈 大二时候的我,学了 C#, 会做一下简单的 winform 程序,然后就开始飘飘然了,跟我爸吹牛了,当时我爸高兴坏了,直接就给我接了一个真实的项目...,没办法啊,只能让我爸去学吧,一个星期后,他开始于我并行开发,这是我跟我爸同台工作最好的回忆;为什么我爸能够在一个星期学会 C#(只有 C 语言基础)?

    72560

    一个32岁入门的70后程序员给我的启示

    岁月的锤炼 ? ( 圆口接口的键盘,2003年的 ) 有人问这个键盘难道没有擦过吗?不是的,是擦不掉的岁月痕迹。如果有注意到细节的朋友会发现,程序员什么键位用得最多。...但是我爸的笔记,我每次问他,这是什么项目的,他都能记得很清楚,当然他当时入门的时候是非常痛苦的,一个英文单词都不懂,可想而知。...原来嵌入式开发所做的事就是负责把各个功能模块合理设计,用程序去调度。现在成熟的芯片都是厂商写好了程序,提供外部调用接口,开发人员并不需要了解他里面的内容就可以开发了。这对我以后学编程启发很大。...( 这是它给我提供的串口应答式发送的流程(可能有错)) 我把我爸逼成了伪全栈 大二时候的我,学了C#,会做一下简单的winform程序,然后就开始飘飘然了,跟我爸吹牛了,当时我爸高兴坏了,直接就给我接了一个真实的项目...,没办法啊,只能让我爸去学吧,一个星期后,他开始于我并行开发,这是我跟我爸同台工作最好的回忆;为什么我爸能够在一个星期学会C#(只有C语音基础)?

    62750

    一个32岁入门的70后程序员给我的启示

    大家好,我是帅气小伙,今天为大家带来一个非常励志,让我反思的故事。今天为大家讲的是我父亲是如何用行动教会我成为程序员的。 岁月的锤炼 ? 圆口接口的键盘,2003年的 有人问这个键盘难道没有擦过吗?...但是我爸的笔记,我每次问他,这是什么项目的,他都能记得很清楚,当然他当时入门的时候是非常痛苦的,一个英文单词都不懂,可想而知。...原来嵌入式开发所做的事就是负责把各个功能模块合理设计,用程序去调度。现在成熟的芯片都是厂商写好了程序,提供外部调用接口,开发人员并不需要了解他里面的内容就可以开发了。这对我以后学编程启发很大。...这是它给我提供的串口应答式发送的流程(可能有错) 我把我爸逼成了伪全栈 大二时候的我,学了C#,会做一下简单的winform程序,然后就开始飘飘然了,跟我爸吹牛了,当时我爸高兴坏了,直接就给我接了一个真实的项目...,没办法啊,只能让我爸去学吧,一个星期后,他开始于我并行开发,这是我跟我爸同台工作最好的回忆;为什么我爸能够在一个星期学会C#(只有C语音基础)?

    49010

    一个32岁入门的70后程序员给我的启示

    岁月的锤炼 圆口接口的键盘,2003年的 有人问这个键盘难道没有擦过吗?不是的,是擦不掉的岁月痕迹。如果有注意到细节的朋友会发现,程序员什么键位用得最多。...但是我爸的笔记,我每次问他,这是什么项目的,他都能记得很清楚,当然他当时入门的时候是非常痛苦的,一个英文单词都不懂,可想而知。...原来嵌入式开发所做的事就是负责把各个功能模块合理设计,用程序去调度。现在成熟的芯片都是厂商写好了程序,提供外部调用接口,开发人员并不需要了解他里面的内容就可以开发了。这对我以后学编程启发很大。...这是它给我提供的串口应答式发送的流程(可能有错) 我把我爸逼成了伪全栈 大二时候的我,学了C#,会做一下简单的winform程序,然后就开始飘飘然了,跟我爸吹牛了,当时我爸高兴坏了,直接就给我接了一个真实的项目...,没办法啊,只能让我爸去学吧,一个星期后,他开始于我并行开发,这是我跟我爸同台工作最好的回忆;为什么我爸能够在一个星期学会C#(只有C语音基础)?

    61290

    来听听这位70后程序员的故事

    岁月的锤炼 圆口接口的键盘,2003年的 有人问这个键盘难道没有擦过吗?不是的,是擦不掉的岁月痕迹。如果有注意到细节的朋友会发现,程序员什么键位用得最多。...但是我爸的笔记,我每次问他,这是什么项目的,他都能记得很清楚,当然他当时入门的时候是非常痛苦的,一个英文单词都不懂,可想而知。...这是它给我提供的串口应答式发送的流程(可能有错) 我把我爸逼成了伪全栈 大二时候的我,学了C#,会做一下简单的winform程序,然后就开始飘飘然了,跟我爸吹牛了,当时我爸高兴坏了,直接就给我接了一个真实的项目...有人问:“不可以辞职吗?”,我给你的答案是:“这时我在读大学,他应经是40知天命的人了”,年龄限制了这位中年人的职业生涯,他不得不选择妥协,遵守着这体制内的金科玉律。.../是我接口的BaseUrl) 请求参数就这样写就可以解决了,把post的参数做一个MediaType的声明即可 程序员的入场券 我一直质问我爸:"你当初为什么不选择去当程序员,而去做运维",他总是这样跟我说

    1.1K50

    .NET周报 【7月第1期 2023-07-02】

    园子里的有朋友在下载并了解了《C# 实现 Linux 视频会议(源码,支持信创环境,银河麒麟,统信UOS)》中提供的源码后,留言给我说,这个视频会议有点复杂了,代码比较多,看得有些费劲。...问我能不能整个简单点的Demo,只要有视频聊天和远程桌面的功能就可以。...文中给出了详细的代码示例和效果图,以及相关的字体配置和Xaml文件。...Pipeline本质上就是一个简单的顺序工作流,它仅仅按序执行注册的Pipe。这个简单的Pipelines框架被放在这里,这里我不会介绍它的设计实现,只是简单地介绍它的用法,有兴趣的可以查看源代码。...,部署到 Windows 服务器 IIS 后,postman 可以直接访问到接口并正确返回,这并不意味着任务完成,毕竟接口嘛是要有交互的,最常见的问题莫过于跨域了。

    18820

    C# 9.0新特性

    是的,C# 8.0还未正式发布,在官网它的最新版本还是Preview 5,通往C#9的漫长道路却已经开始.前写天收到了活跃在C#一线的BASSAM ALUGILI给我分享C# 9.0新特性,我在他文章的基础上进行翻译...Type Classes和C#接口具有相似的用途,但它们的工作方式有所不同,在某些情况下,由于处理固定类型而不是继承层次结构,因此Type Classes更易于使用。...我引用了官方提案中的一些结论: “一般来说,”shape“(shape是Type Classes的一个新的关键字)声明非常类似于接口声明,除了以下情况, 它可以定义任何类型的成员(包括静态成员) 可以通过扩展实现...x = ["foo":4, "bar": 5]; 该特性使C#中的字典工作更简单,并删除冗余代码。...固定大小的缓冲区 这些提供了一种通用且安全的机制,用于向C#语言声明固定大小的缓冲区。 目前,用户可以在不安全的环境中创建固定大小的缓冲区。

    1.6K30

    C#内建接口:IEnumerable

    首先它跟C#中的enum关键字所表达的意思是不同的, 从翻译上来看:可枚举的,展开来说就是它的数据是一枚一枚可以让我们列举出来。...就像人们排队去打疫苗,排队的人就是可枚举的,他们有的开车,有走着,有早有晚全都按照先来后到的顺序排好队,当医生开始进行打疫苗的工作时,他并不关心有多少人在排队,也不关心是否有人迟到,当然也不能越过第一个人让其后边的人先进来打...,他只能说“请下一个人进来打疫苗”,如果没人响应医生就等着,直到有人进来开始接种,当前这个人完成接种后,医生继续叫下一个人,直到所有人都打完疫苗。...02 接口成员及使用示例 我们先来看接口中有什么,因为IEnumerable接口一般都是用其泛型版,我们直接看这种: 接口内容很简单,但是其中又出现了一个名为IEnumerator的接口...的方法,用来模拟数据的产生,其中用到了一个yield关键字,我简单来说yield return就是部分返回(产生了一个数据,就返回一个,yield具体用法请看我上一篇分享的文章:[C#.

    87020

    Unity容器在asp.net mvc中的IOC应用及AOP应用

    《asp.net-mvc框架揭秘》一书中,有个示例,是使用unity容器来注入自定义的控制器工厂。代码示例可以自己去下载源码,在这里我就不说了。...我们主要是通过集成ICallHandler接口来实现AOP,这个接口是unity给我们提供的,这个接口主要就是一个Invoke方法。...在Invoke中,如果调用getNext()方法就会调用IOCImple标注了属性的方法。如果你的C#基础比较扎实,你对C#中的一个重要知识点-特性(attribute)应该就会有印象以及一定的了解。...DI是为了解耦的实例化接口,而AOP是横向的注入一些逻辑,我们可以在AOP里面实现DI,unity中的AOP模块默认会给我们实现DI,一旦我们实现了AOP,就相当于实现了DI。...=null) { Console.WriteLine("error"); } return retvalue; } 这种简单的实现是完全可以的。

    20810

    Clay: 创建和使用深层次对象图

    现在的问题是使用C#的静态类型来解决这些需求是非常不爽的。...C# 4.0 提供了一个非常好的关键词适合各种各样的情况使用,它就是 dynamic, ExpandoObject 实际上是通过一种令人惊讶方式实现的,这使得它非常高效。提示:不是通过字典。...又提示:它是一个非常好的东西。 但是,依照API 可用性原则,它不够大胆,尤其是在构建深层次动态对象图方面它并没有给我们多少帮助。它的行为也比较固定且不能被扩展。...另一方面,Clay 是高度可扩展的,且专注于深层次对象图的创建和使用。 通过 Clay 你可以做的第一件事情就是创建一个简单的对象并在它上面设置属性。...,Louis 第一次展示它给我看的时候,我觉得真的非常优雅和惊讶。

    85660

    深夜把玩 ApiPost,分享细腻体验!

    调用:调用接口的方式就非常简单了,直接选择发送即可完成接口调用操作。PS:安装后到这个界面一眼就能看得见。...那这样情况咋办,其实也好办,就是前端小伙伴通过后端研发提交的接口信息、描述字段,来 Mock 出接口数据,有了一个简单的数据调用,前端同学就可以与后端同学一起动工了。...使用示例 mock 示例 你可以通过拿到后端的接口出参定义,在接口返回结果中设置你想要的参数内容。 另外你可以使用 mock.js 提供丰富的功能,生成你需要的信息。...流程测试 流程测试是 ApiPost 所提供的一个接口结合测试功能,作为一个完整调用链路的方式进行访问接口,这个时候你可以做一些冒烟测试,对于测试同学来说,是一个非常赞的功能。...不只是写Java语言,也搞过C#、PHP,是一个技术活跃的折腾者。

    43860

    使用C#编写一个.NET分析器(一)

    但是学习如果使用该API的入门成本非常高。第一个原因是,你必须要你充分了解.NET元数据系统以及工作原理才能实现一些分析器功能。...第二个原因是,它所有的文档和示例都是使用C++编写的,而且目前也没有C#的示例。 从理论上来说,大多数语言都可以来编写.NET分析器。例如,这里有人使用Rust的Demo。...,所以可以将它加载到进程中,看起来和C++、Rust任何Native库一样。这意味我们可以使用Native AOT工具和C#语言来编写一个.NET分析器。...但是"接口"在C++和C#中意味着不同的东西,所以我们不能仅仅在我们的.NET代码中定义一个接口,然后收工。 事实上,接口的概念在C++中并不存在。实际上,它只是指定一个只包含纯虚函数的抽象类。...然后,我们需要另一块内存,其中包含一个指向 vtable 的指针。如下图所示: 为了简单的实现它,我们可以将实例和 vtable 合并到一个内存块中: 那么它在C#中是什么样子的呢?

    80110

    精:C#这些年来受欢迎的特性

    这两者的取舍,取决于哪个是我最常用的,以及近年来最令 C# 开发人员受益的那个特性。 命名可选参数实至名归,尽管这是一个非常简单的特性,其实用性却很高。...以上面的示例为例,假设我们只希望我们的数据表返回 100 行而不是默认的 50 行。我们可以将我们的调用改为包含一个命名参数,并传递所需的重写值。...GetJokeAsync 的方法定义一个简单的类,当我们调用方法时,该方法返回一个 Task 。...不明白这是谁设计的,希望有人能向我解释,感觉就像是一个疏忽。因此,只有 Out 变量合我心意。 从 C# 版本1.0以来,try-parse 模式已经在各种值类型中出现了。...C# 的许多特性受我喜欢,因此在每个版本选出一个最喜欢的特性是非常困难的。 每个 C# 版本都包含了强大而有影响力的特性。C# 语言团队以无数的方式进行创新 - 其中之一就是迭代发布。

    17230

    C# 这些年来受欢迎的特性

    这两者的取舍,取决于哪个是我最常用的,以及近年来最令 C# 开发人员受益的那个特性。 命名可选参数实至名归,尽管这是一个非常简单的特性,其实用性却很高。...以上面的示例为例,假设我们只希望我们的数据表返回 100 行而不是默认的 50 行。我们可以将我们的调用改为包含一个命名参数,并传递所需的重写值。...GetJokeAsync 的方法定义一个简单的类,当我们调用方法时,该方法返回一个 Task 。...不明白这是谁设计的,希望有人能向我解释,感觉就像是一个疏忽。因此,只有 Out 变量合我心意。 从 C# 版本1.0以来,try-parse 模式已经在各种值类型中出现了。...C# 的许多特性受我喜欢,因此在每个版本选出一个最喜欢的特性是非常困难的。 每个 C# 版本都包含了强大而有影响力的特性。C# 语言团队以无数的方式进行创新 - 其中之一就是迭代发布。

    20520
    领券