仅使用另一个类中的类

时间:2011-07-08 06:41:54

标签: c# c#-3.0

        public class ClientData : IEquatable<ClientData>
        {
            public String CustomerName { get; set; }
            public int CustomerId { get; set; }        

            public bool Equals(ClientData other)
            {
                if (other == null) return false;
                return (CustomerName == other.CustomerName && CustomerId == other.CustomerId);
            }

            public override int GetHashCode()
            {
                int hash = 23;
                hash = hash * 31 + CustomerName.GetHashCode();
                hash = hash * 31 + CustomerId.GetHashCode();
                return hash;
            }

        }

public class Service
{
    ....
}

我正在寻找一种方法来使用我的ClientData但只在我的服务类中,即只有服务类知道clientdata类存在并且可以正常使用它的方法

4 个答案:

答案 0 :(得分:3)

使CientData成为private嵌套类Service

public class Service
{
    private class ClientData
    {
        // ...
    }
}

答案 1 :(得分:3)

您可以将其设为嵌套类,例如:

public class Service
{
    private class ClientData : IEquatable<ClientData>
    {
       ...
    }
}

答案 2 :(得分:2)

通过使ClientData成为Service的嵌套类,如下所示,Service可以创建ClientData的实例并访问其所有public方法,但是不能将其公开暴露给其他类,其他类无法实例化ClientData

public class Service
{
    private class ClientData : IEquatable<ClientData>
    {
        ...
    }
    ...
    private ClientData _clientData = new ClientData();
}

答案 3 :(得分:1)

您可以将ClientData类嵌套在Service类中,也可以创建ClientData类protected并将它们放在同一个程序集中。