2010-05-06 2 views
10

어떤 유형의 배열로 인스턴스화 된 변수를 어떻게해야합니까?배열/목록/컬렉션에 대한 변수 이름 지정 - C#

보유하고있는 유형의 복수형을 사용하는 것이 좋습니까?

IList<Person> people = new List<Person>();

또는 나는 이름에 '목록'같은 것을 추가해야합니까? 또한

IList<Person> personList = new List<Person>();

, 그것은 이런 루프가 일반적으로 허용인가?

foreach(string item in items) 
{ 
    //Do something 
} 

답변

3

앞서 언급했듯이 이것은 실제로 매우 주관적이지만 코드를 사용하는 다른 개발자가 사용하는 상호 작용의 첫 번째 지점 일 때 클래스를 사용할 때 인텔리 센스 드롭 다운에서 가장 잘 보이는 부분을 찾으러갑니다.

11

이것은 간단한 코드 규칙이므로 팀의 숙제를 따라야합니다. 프로젝트 당 하나의 단일 프로젝트 인 경우 동일한 규칙을 그대로 사용하십시오.

LE : 명확한 질문이지만 루프가 정상입니다.

1

개인적으로 나는 "사람"으로 가고 싶지만, 이것은 매우 주관적이며 "표준 코딩"이 아닙니다. 가장 직관적 인 느낌으로 이동하십시오.

그리고 네 루프가 완벽하게 수용

0

개인적 변수 이름은 유형뿐만 아니라 상황을 설명해야한다고 생각합니다. 나는 개인적으로 personList를 더 좋아한다 : more : 이 모든 '개인적으로'진술을 통해 나는 내 개인적인 감정 일 것이라고 생각한다 :

1

내가 함께 일한 팀에서 우리는 일반적으로 list/array 변수를 단일 객체 변수에서 가져올 수 있습니다.

e.e. 코드를 읽을 때

object horse = new object(); 

List<object> horses = new List<object>; 

을 사용하는 것은 정말 힘들 것입니다. 이미 언급 한 바와 같이 그래서 당신은

object horse = new object(); 

List<object> PackOfHorses = new List<Object>(); 

처럼 뭔가를 가야한다.

루프가 완벽하게 허용됩니다. 그게 잘못된 것은 아닙니다.

편집 : 주석으로 인해 표현 및 변수 이름이 변경되었습니다.

+2

"이것은 단지 제 의견입니다"가 아니라 "모범 사례"를 주장한 유일한 사람이므로 귀하와 의견이 다를 것입니다. 첫 번째 문장에서 인용이 필요합니다. 왜냐하면 그것은 전혀 모범 사례처럼 보이지 않기 때문입니다. [헝가리 표기법 원본] (http://www.joelonsoftware.com/articles/Wrong.html)조차도 데이터 유형이 변수 이름의 일부가 될 것을 요구하지 않았습니다. 또한 PascalCase는 언제 변수 이름에 가장 적합한 방법입니까? –

+0

아마도 내 말씨가 그다지 정확하지 않았을 것입니다. "일반적으로 모범 사례로 간주됩니다."나는 실제로 코드를 읽을 때 관찰하기가 어렵 기 때문에 일반적으로 단어 (말, 말)의 복수형을 사용하지 않는 것이 일반적으로 '좋은'관행이라고 생각했습니다. 나는 한 곳에서 읽고 듣지 않았기 때문에 표창장을주지 않았다. 그것은 단지 경험입니다. 데이터 유형에 관해서는, 나는 그가 그것을 사용해야한다고 말하지 않았다, 나는 방금 OP의 질문 (그는 personsList를 사용했다)에 var names simillar를 사용했다. 방금 언급 한 말의 예에서, 말 - 말 대신에 말 - 포장 말을 찾으러 갈 것입니다. –

+3

나는 복수형을 사용하여 코드를 읽기가 더 어렵게 만든다고 말한 적이 없습니다. –

1

다른 양식을 사용할 수도 있지만 이상적으로는 복수형을 사용하는 것이 좋습니다. 엄격하고 빠른 규칙이 아닌 지침 만 있습니다.

1

필자는 PersonList를 사용하는 것을 좋아하지 않습니다. 변수가 아닌 사람을 포함하도록 작성한 클래스처럼 들리니까요.

0

완전히 기능을 갖춘 IDE가없는 예전에는 peopleList과 같은 이름을 사용하여 이름의 변수 유형을 파악할 수 있었기 때문에 더 적합하다고 생각합니다. 하지만 요즘은 더 이상 문제가되지 않습니다.