저는 C # 전후의 몇 가지 예, 비 관용적 대 관용적 예에 관심이 있습니다. 비 c # 예제도 아이디어를 얻을 수 있다면 괜찮을 것입니다. 감사.
저는 C # 전후의 몇 가지 예, 비 관용적 대 관용적 예에 관심이 있습니다. 비 c # 예제도 아이디어를 얻을 수 있다면 괜찮을 것입니다. 감사.
답변:
몇 가지 예 :
자원 관리 , 비 관용적 :
string content;
StreamReader sr = null;
try {
File.OpenText(path);
content = sr.ReadToEnd();
}
finally {
if (sr != null) {
sr.Close();
}
}
관용적 :
string content;
using (StreamReader sr = File.OpenText(path)) {
content = sr.ReadToEnd();
}
반복 , 비 관용적 :
for (int i=0;i<list.Count; i++) {
DoSomething(list[i]);
}
또한 비관 상적 :
IEnumerator e = list.GetEnumerator();
do {
DoSomenthing(e.Current);
} while (e.MoveNext());
관용적 :
foreach (Item item in list) {
DoSomething(item);
}
비 관상적인 필터링 :
List<int> list2 = new List<int>();
for (int num in list1) {
if (num>100) list2.Add(num);
}
관용적 :
var list2 = list1.Where(num=>num>100);
관용적 코드는 귀하의 언어에 대해 일반적인 방식으로 일반적인 작업을 수행하는 코드입니다. 디자인 패턴과 비슷하지만 규모가 훨씬 작습니다. 관용구는 언어에 따라 크게 다릅니다. C #의 관용구 중 하나는 반복기를 사용하여 컬렉션을 반복하는 대신 반복기를 사용하는 것입니다. 반복자가없는 다른 언어는 루프 관용구에 의존 할 수 있습니다.
실제로는 일관된 방식으로 코드를 작성하는 것을 의미합니다. 즉, 코드 기반에서 작업하는 모든 개발자는 유사한 코드 구조를 작성할 때 동일한 규칙을 따라야합니다.
따라서 관용적 방식은 다른 코드의 스타일과 일치하는 방식입니다. 비 관용적 방식은 일종의 함수를 작성하지만 다른 방식으로 작성한다는 의미입니다.
예를 들어 특정 개수의 항목을 반복하는 경우 여러 가지 방법으로 루프를 작성할 수 있습니다.
for (int i = 0; i < itemCount; i++)
for (int i = 1; i <= itemCount; i++)
for (int i = 0; i < itemCount; ++i)
기타
가장 중요한 것은 선택한 스타일이 일관되게 사용된다는 것입니다. 이렇게하면 사람들이 사용 방법에 대해 매우 익숙하고 자신감을 갖게되며, 다르게 보이는 사용법을 염탐 할 때 실수가 발생했다는 신호일 수 있습니다.
for (int i = 1; i < itemCount; i++)