【问题标题】:How to create Property of Static Class in C# 4.0如何在 C# 4.0 中创建静态类的属性
【发布时间】:2012-03-10 08:57:02
【问题描述】:

我创建了以下类

静态类 CustomerServiceData.cs

namespace QSys.Library.Security
{
    public static class CustomerServiceData
    {
        public static bool CompanyNameUpdatable
        {
            get;
            set;
        }
        public static bool AddressUpdatable
        {
            get;
            set;
        }
        public static bool CityUpdatable
        {
            get;
            set;
        }
    }
}

现在我将静态类的值设置如下。 CustomerDataService.cs

namespace QSys.Web.Services
{
    public class CustomerDataService : DomainService
    { 
public void GetCustomerDataService()
        {
            CustomerServiceData.CompanyNameUpdatable = true;
            CustomerServiceData.AddressUpdatable = true;
            CustomerServiceData.CityUpdatable = true;
        }
    }
}

在这里我想创建静态类属性,它将返回整个静态类,如 CustomerViewModel.cs

public class CustomerViewModel : NotificationObject
{
 #region Properties
        public CustomerServiceData SecurityData
        {
            get
            {
                // I HAVE RETURN CustomerServiceData AS STATIC
                //What should be coming here...? 
                return CustomerServiceData;
            }
        }
        public Customer Customer
        {
            get { return _customer; }
            set
            {
                _customer = value;
                RaisePropertyChanged(() => Customer);
            }
        }
        #endregion
}

任何 cmets 和建议将不胜感激!

提前致谢, 伊姆达杜森

【问题讨论】:

    标签: c#-4.0 mvvm silverlight-4.0 properties static-class


    【解决方案1】:

    你不能——没有返回类本身的概念,你不能使用静态类作为参数类型、返回类型、变量类型等。

    可以CustomerServiceData 转换为非静态类,但将其设为单例...但就个人而言,我会阻止它完全静态。静态数据——基本上是全局变量——使得测试代码和正确推理变得困难。尽可能避免使用全局数据。想想什么需要共享数据,以及获取共享数据的最佳方式(例如依赖注入、提供程序、将数据传递给方法等)。

    您的 CustomerDataService.GetCustomerDataService 方法(这个名字有点奇怪)应该*返回一个 CustomerServiceData 而不仅仅是更新静态属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-07
      • 2012-04-08
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多