【问题标题】:Events and delegates, public or private?活动和代表,公共的还是私人的?
【发布时间】:2017-06-24 08:08:31
【问题描述】:

我的变量有问题。 X1 是一个带有缺陷的事件和方法的变量 X1 是私有的,并且 如果我将此变量的可见性更改为公开,我只能这样称呼它:

X1.OnCapture += delegate { Myresult = X1.Result; } 

但我不知道该变量是否应该是私有的。如果应该,我需要像这样向私有变量添加一个委托:

public enum EventsEnum
{
    OnCapture, OnChange, OnConfiguration, OnDelete, OnError, OnIdentify, OnRegister, OnScan, OnScannerStatus, OnVerify
}

public string dfes(System.EventHandler Delegado, EventsEnum Events)
{
    string Result = "";
    switch (Events)
    {
        case EventsEnum.OnCapture:
            X1.OnCapture += (Delegado + delegate
            {
                Result = X1.result;
            });
            break;
        case EventsEnum.OnChange:
            X1.OnChange += (Delegado + delegate
            {
                Result = X1.result;
            });
            break;
        case EventsEnum.OnIdentify:
            X1.OnIdentify += (Delegado + delegate
            {
                Result = X1.result;
            });
            break;
        default:
            break;
    }
    return Result;
}

这样做的正确方法是什么?我需要将变量设为私有吗?将变量公开是一种不好的做法吗?谢谢你。对于尽可能正确地执行此操作的任何帮助,我将不胜感激。

【问题讨论】:

    标签: c# events delegates private public


    【解决方案1】:

    来自 MSDN:
    public
    同一程序集或引用它的其他程序集中的任何其他代码都可以访问该类型或成员。

    private
    类型或成员只能由同一类或结构中的代码访问。

    所以。如果你想从另一个类访问某些字段、属性、事件,那么你必须使用public。 更多信息:https://msdn.microsoft.com/en-us/library/ms173121.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-11
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 2016-12-07
      • 1970-01-01
      相关资源
      最近更新 更多