当前位置:  开发笔记 > Android > 正文

通知开发人员"不要使用"方法

如何解决《通知开发人员"不要使用"方法》经验,为你挑选了2个好方法。

好的,我知道你在想什么,"为什么写一个你不希望别人使用的方法?" 对?

好吧,简而言之,我有一个需要序列化为XML的类.为了XmlSerializer实现它的魔力,该类必须具有默认的空构造函数:

public class MyClass
{
  public MyClass()
  {
    // required for xml serialization
  }
}

所以,我需要拥有它,但我不希望人们使用它,所以是否有任何属性可用于将方法标记为"不使用"?

我正在考虑使用Obsolete属性(因为这可以阻止构建),但这看起来有点"错误",还有其他方法可以做到这一点,还是我需要继续坚持下去?:)

更新

好吧,我接受了基思的回答,因为我心里想,我完全同意.这就是我首先提出这个问题的原因,我不喜欢拥有过时属性的概念.

然而...

仍然是一个问题,而我们则是在智能感知被通知,理想情况下,我们想打破建立,那么,有没有办法做到这一点?也许创建一个自定义属性?

这里创建了更集中的问题.



1> ICR..:

您可以使用:

[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]

这样它就不会出现在Intellisence中.如果消费者仍然想要使用它,他们可以,但它不会被发现.

Keiths指出过度工程仍然有效.



2> Keith..:

如果一个类是[Serialisable](即可以根据需要在该地方复制),则需要无参数构造函数来进行反序列化.

我猜你想强制你的代码访问权限将属性的默认值传递给参数化构造函数.

基本上你说的XmlSerializer是制作副本然后设置属性是可以的,但你不需要你自己的代码.

在某种程度上,我认为这是过度设计.

只需添加XML注释,详细说明需要初始化哪些属性(以及要做什么).

不要使用[Obsolete],因为它不是.保留真正弃用的方法.

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有