gpt4 book ai didi

c# - 是否可以在 C# 中缩短对象名称?

转载 作者:行者123 更新时间:2023-11-30 13:37:44 24 4
gpt4 key购买 nike

我看了很远很广,还没有找到关于我尝试做的事情的提及,所以我有点担心这可能是不可能的。但我认为值得一试。

我有一个对象,它是放在另一个类中的一个类的一部分,它是全局的。看起来像这样:

public struct descrptiveButLongName
{ public static GameData relativelyLongName {get; set;} }

class GameData
{ public playerData notSoShortNameToo {get; set;} }

我在我的代码中经常引用 descriptiveButLongName.relativelyLongName.notSoShortNameToo(这基本上是游戏中的一个玩家对象),它确实占用了大量空间。我试图找到一种方法来为该特定属性做一些速记,所以我可以将它命名为例如 PlayerData。效果如下:

using PlayerData = FileName.descriptiveButLongName.relativelyLongName.notSoShortNameToo;

但是使用实际对象的别名,而不是类型名称,同时仍然能够保留描述性名称。这在 C# 中甚至可能吗?

最佳答案

首先,有一种叫做得墨忒耳法则的东西,简而言之就是“只和你最亲密的 friend 交谈”。

http://c2.com/cgi/wiki?LawOfDemeter

http://en.wikipedia.org/wiki/Law_of_Demeter

基本概念是,根据“信息隐藏”原则,给定对象应尽可能少地假设任何其他对象(包括其子组件)的结构或属性。

在您的情况下,如果您应用这个原则(我强烈建议这样做),即使您的属性名称很长,您也不会有这个问题。

其次:你是对的,你可以使用“using”指令来别名类型和命名空间,但不能用于某些属性。

作为某种解决方法,您可以做的是创建一个特殊的属性,在它的“get”访问器中取出整个链,但这会破坏 Demeter 法则。

关于c# - 是否可以在 C# 中缩短对象名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21350683/

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