gpt4 book ai didi

c# - .net 委托(delegate)是真实对象吗?

转载 作者:行者123 更新时间:2023-11-30 13:07:38 25 4
gpt4 key购买 nike

我已经在 C# 中工作了几年,有一件事总是让我烦恼。代表们。它们没有状态,它们是指向对象方法的指针,并且是处理线程或 .net 必须提供的任何其他类型的并行编程技术时的唯一途径。

我主要担心的是,当以面向对象的风格编程时,委托(delegate)打破了范式,打破了这样一种观念,即如果你采用面向对象,那么使用 UML 和 CRC 的设计阶段应该映射到你使用的语言。

正如标题所问,委托(delegate)是真实对象还是编程异常,需要在面向对象设计的范围之外完成。

因此,如果一个对象没有状态并且可以在 UML 中对委托(delegate)进行建模,那么对象是否有可能成为对象?

曾经有一位知名人士就天文学发表公开演讲。他描述了地球如何围绕太阳公转,以及太阳又如何围绕被称为银河系的大量恒星的中心公转。讲座结束时,教室后面的一位小老太太站起来说:“你跟我们说的都是垃圾。世界真是一个用巨龟背支撑的平板。”科学家露出优越的笑容,然后回答说:“乌龟站在什么上面?” “你很聪明,年轻人,非常聪明,”老太太说。 “但一路下来都是海龟!----斯蒂芬·霍金斯

我认为这与对象及其所处的基本类型密切相关。你真的能一直说它的对象吗?

最佳答案

它们是真实的对象。

当您使用 UML 建模时,通常会使用接口(interface)。他们有状态吗?不,它们是否更不面向对象?当然不是。

当然,委托(delegate)可以用 UML 建模。

我认为它们代表了一种更函数式的方法,因为它们是一流对象的函数。这可能会让您担心,但这并不影响它们确实是对象这一事实。

关于c# - .net 委托(delegate)是真实对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3964727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com