C# 与OOPs中抽象概念相关的问题

C# 与OOPs中抽象概念相关的问题,c#,asp.net,oop,abstract,C#,Asp.net,Oop,Abstract,我正在使用文章从互联网上阅读OOPs概念 在其中一篇文章中,我阅读了以下关于抽象的内容: 如果在“Billing”类中有一个名为“CalculatePrice”的方法, 我们不关心内部的计算 “计算价格”方法。我们只需传递必要的参数,就可以得到 输出。我们隐藏了“计算价格”的实现 所以我的问题是:在C#中,我们使用DLL和名称空间,并调用特定的方法。我们可以说,DLL和名称空间是抽象的概念吗 谢谢 所以我的问题是:在C#中,我们使用DLL和名称空间,并调用特定的方法。我们可以说,DLL和名称空间

我正在使用文章从互联网上阅读OOPs概念

在其中一篇文章中,我阅读了以下关于抽象的内容:

如果在“Billing”类中有一个名为“CalculatePrice”的方法, 我们不关心内部的计算 “计算价格”方法。我们只需传递必要的参数,就可以得到 输出。我们隐藏了“计算价格”的实现

所以我的问题是:在C#中,我们使用DLL和名称空间,并调用特定的方法。我们可以说,DLL和名称空间是抽象的概念吗

谢谢

所以我的问题是:在C#中,我们使用DLL和名称空间,并调用特定的方法。我们可以说,DLL和名称空间是抽象的概念吗

没有

所以我的问题是:在C#中,我们使用DLL和名称空间,并调用特定的方法。我们可以说,DLL和名称空间是抽象的概念吗

否。

通常,您应该将dll文件和名称空间看作是组织项目的方法

CalculatePrice
的抽象只是将其逻辑“隐藏”在方法中。当另一段代码调用该方法时,它不关心其中发生了什么-它只关心结果

C#(通常是.Net)中的抽象是使用接口抽象类,以及在这些抽象类中定义和/或实现的方法和属性来实现的

您的重点应该放在这些概念上,以及它们如何在不同的“模式”中一起使用以解决各种类型的问题

仅对示例进行一点扩展:如果在接口中定义了
CalculatePrice
,则调用代码将与该接口“对话”,而不关心其背后的内容。接口的实现——实际执行逻辑的代码——可以是任何东西。只要它满足接口中定义的需求(“合同”),它就可以改变,并且会一直改变,因为这将允许调用代码继续使用它。。这就是抽象在C#中的工作原理

没有

通常,您应该将dll文件和名称空间看作是组织项目的方法

CalculatePrice
的抽象只是将其逻辑“隐藏”在方法中。当另一段代码调用该方法时,它不关心其中发生了什么-它只关心结果

C#(通常是.Net)中的抽象是使用接口抽象类,以及在这些抽象类中定义和/或实现的方法和属性来实现的

您的重点应该放在这些概念上,以及它们如何在不同的“模式”中一起使用以解决各种类型的问题


仅对示例进行一点扩展:如果在接口中定义了
CalculatePrice
,则调用代码将与该接口“对话”,而不关心其背后的内容。接口的实现——实际执行逻辑的代码——可以是任何东西。只要它满足接口中定义的需求(“合同”),它就可以改变,并且会一直改变,因为这将允许调用代码继续使用它。。这就是抽象在C#中的工作原理

有趣的是,有四个答案都说“不”。事实上,答案是“有时”。如果
CalculatePrice
的实现依赖于另一个标记为internal的类,那么它的程序集确实是抽象的一部分,因为该程序集中的其他类只能访问内部类

NET中的名称空间并不构成任何抽象的一部分。在其他语言中,它们可以,因为
internal
可以绑定到名称空间,但.NET语言不是这样工作的


这种信息隐藏是最基本的抽象形式。C#最强大的抽象工具是接口、对依赖注入的支持以及将方法作为值处理。如果您有兴趣了解更多关于C#中抽象的知识,那么这三个方面是您需要关注的。

有趣的是,有四个答案都是“不”。事实上,答案是“有时”。如果
CalculatePrice
的实现依赖于另一个标记为internal的类,那么它的程序集确实是抽象的一部分,因为该程序集中的其他类只能访问内部类

NET中的名称空间并不构成任何抽象的一部分。在其他语言中,它们可以,因为
internal
可以绑定到名称空间,但.NET语言不是这样工作的


这种信息隐藏是最基本的抽象形式。C#最强大的抽象工具是接口、对依赖注入的支持以及将方法作为值处理。如果您有兴趣了解更多关于C#中抽象的知识,那么这三个方面是您需要关注的。

这个问题毫无意义。方法的实现与名称空间有什么关系?名称空间只是将类划分为逻辑单元的一种方式。方法的实现与此无关。我的意思是,当我们使用DLL时,我们必须在程序开始时编写“使用名称空间”,就像“使用系统”。基本上,不是。名称空间不是抽象的概念。你显然误解了什么是抽象。这篇文章是关于类的,C#有类。不需要找到其他等效元素。只有在使用名称空间之后,我们才能创建类的对象,然后我们才能使用类的对象调用特定的方法。所以DLL和命名空间是相互联系的,这个问题毫无意义。该计划的实施情况如何