Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 应用于锁方法的多态性_C# - Fatal编程技术网

C# 应用于锁方法的多态性

C# 应用于锁方法的多态性,c#,C#,我必须实现自己的锁定,但是如果选择了标准的C#lock,我也可以使用它。我想用多态性来实现这一点,但对于像lock这样的方法如何实现这一点,我感到困惑 是否有某种方法可以将方法作为方法的结果传递,例如lock?lock目前仅根据监视器定义。输入/监视器。退出。从理论上讲,这在未来可能会发生变化(例如,fixed最近发生了变化,包括通过getpinnableference()编写自定义实现的能力),但:今天不会。您可能可以使用实现类似的,返回符合您所需代码的IDisposable。也许您应该添加一

我必须实现自己的锁定,但是如果选择了标准的C#lock,我也可以使用它。我想用多态性来实现这一点,但对于像lock这样的方法如何实现这一点,我感到困惑


是否有某种方法可以将方法作为方法的结果传递,例如lock?

lock
目前仅根据
监视器定义。输入
/
监视器。退出
。从理论上讲,这在未来可能会发生变化(例如,
fixed
最近发生了变化,包括通过
getpinnableference()
编写自定义实现的能力),但:今天不会。您可能可以使用
实现类似的
,返回符合您所需代码的
IDisposable

也许您应该添加一个示例,说明您想要实现什么。您认为为什么需要实现自己的锁定?多态性与并发无关,它们指的是完全不同的字段。这甚至不是苹果对桔子,而是苹果对交通灯。你是否在尝试实现版本控制或签出/签入功能?仅仅因为名称
lock
在该上下文中使用并不意味着
lock
关键字是合适的。“去实现你自己的锁定”看起来就像是现代意义上的@PanagiotisKanavos,它用于学校作业,我必须能够在我自己的锁定实现和C#的标准实现之间切换,在我看来,在锁定方法之间切换最优雅的方式是使用多态性,所以我只是想看看这个选项是否存在。似乎没有,至少不是以一种优雅的方式,所以我将考虑其他选择。我记得一位C#设计师说,如果在C#1中可用,他们将使用
块而不是锁。他在Jon Skeet的一篇相关文章中找到了。从2004年开始!当时他已经为此创建了一个库