如何在C#4.0中创建静态类的属性

时间:2012-03-10 08:57:03

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

我创建了以下课程

静态类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
}

我们将不胜感激任何意见和建议!

先谢谢, Imdadhusen

1 个答案:

答案 0 :(得分:3)

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

可以CustomerServiceData变成一个非静态类但是让它成为一个单独的...但我个人只是想让它完全不再是静态的。静态数据 - 基本上是全局的 - 使得很难测试代码并正确地推理它。尽可能避免使用全局数据。考虑共享数据需要什么,以及获取共享数据的最佳方式(例如依赖注入,提供者,将数据传递给方法等)。

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