우리 솔루션에서 사용할 모든 상수를 포함하는 클래스를 정의한다고 가정 해보십시오. 그리고이 수업에는 어떤 방법도 없습니다. 우리가 알고있는클래스의 속성을 어떻게 분류 할 수 있습니까?
public class _const
{
/// Group1: 'DataBase'. We naming "db" group
public const Server_Name = 'ServerName';
public const DB_Name = 'DBName';
public const DB_User = 'UserName';
public const DB_Password = 'Password';
/// Group2: 'Default Variable'. We naming "default" group
public const Title= 'DefaultTitle';
public const KeyWord = 'DefaultKeyWord';
/// Group3: 'Status' constans.We naming "status" group
public const Approved = 'Approved';
public const Rejected = 'Rejected';
public const Suspended = 'Suspended';
/// And so on...
/// ...
/// ...
/// ...
}
는, 이러한 상수는 단순히 아래 명령과 솔루션 어디서나 사용됩니다. 그리고 클래스의 인스턴스를 만들 필요가 없습니다.
/// For example:
string x = _const.Approved;
내 질문은 : 쉽게 사용하고 더 많은 코드의 가독성을 위해 함께 관련 상수를 그룹화하는 방법이 있습니까? 그리고 자신의 접두사 이름 (네임 스페이스와 같은)을 가진 각 그룹에 대한 액세스?
다음 코드와 유사합니다.
/// For example:
string x = _const.db.DB_Name;
string y = _const.default.KeyWord;
string z = _const.status.Approved;
_const 클래스에서 내부 클래스를 정의하여 하위 클래스를 만들 수 있습니다. – AFract
(거의) 관련이없는 메모에는 '승인 됨'값이 '승인 됨'인 상수를 정의하면 아무런 이점이 없습니다. 반대로 "DB_Name"과 같은 것을 상수로 사용하고 싶지는 않지만 구성 가능합니다. 귀하의 질문에 대한 대답이있는 동안, 나는 상상력이 너무 풍부하여 조직의 수준 *이 필요한 프로젝트를 보지 못했습니다 (그리고 결코 프로젝트를 보지 않기를 바랍니다). 그리고 모든 것을 하나의 클래스로 그룹화하는 것은 대부분의 소프트웨어에서 끔찍한 아이디어입니다. 그들이 자연스럽게 그룹화되어 있다면, 함께 강요하는 대신에 혼자서 사용하지 않겠습니까? –
클래스 대신 Structs를 사용할 수 있습니다. – Cybrus