c# 2021 코딩 지침 및 관행
흥미로운 기사를 보게 돼서 이렇게 포스팅하게 되었다.
원문 링크 : [ 링크 ]
조건문을 기술 하는 과정, null 체크하는 과정, String.Format을 하는 과정 등 여러 가지 팁이 나열되어있다.
실제 나도 Visual Stduio에서 인라인 처리라던지, 무시항목, 등등 여러 가지 형태로 어시스트해서 사용하는 항목들도 종종 있다. 이렇게 코딩 지침이나 관행이 변경되는 건 결국 버전이 올라가게 되면서 여러 가지를 지원해주기 때문이다.
반응형
간략하게 몇가지만 정리하면 다음과 같다.
if 분기처리
bool result;
if (condition)
{
result = true;
}
else
{
result = false;
}
------------------------------------------------------------------------
bool result = condition ? true: false;
if (something != null)
{
if (other != null)
{
return whatever;
}
}
------------------------------------------------------------------------
return something?.other?.whatever;
if (something != null)
{
if (other != null)
{
return whatever;
}
else
{
return string.empty;
}
}
else
{
return string.empty;
}
------------------------------------------------------------------------
return something?.other?.whatever ?? string.empty;
// 가능하면 긍정적인 조건 ex:hasAccount
if (...) {
// 간단하고 긍정적인 내용
} else {
/*
* 상대적으로 복잡함
* ...
* ...
*/
}
Null 체크
int? number = null;
if (number == null)
{
//do something
}
if (!number.HasValue)
{
//do something
}
--------------------------------------------------
int? number = null;
if (number is null)
{
//do something
}
Switch 문
switch(condition)
{
case 1:
//do something
break;
case 2:
//do something
break;
case 3:
//do something
break;
default:
//do something else
break;
}
-------------------------------------------------------
condition switch
{
1 => //do something;
2 => //do something;
3 => //do something;
_ => //do something else;
}
let strategies = new Map([
['major_A', travel],
['major_B', review],
['major_C', reviewAllDay],
['major_D', reviewAllDay],
['minor_A', travel],
['minor_B', shopping],
['minor_C', watchTV],
['minor_D', review]
])
function action(ranking, subjectType){
let condition = `${subjectType}_${ranking}`
let strategy = strategies.get(condition)
strategy()
}
String Format
string name = "Vianne";
string greetings = "Hello " + name + "!";
----------------------------------------------------------------------
string name = "Vynn";
string greetings = string.Format("Hello {0}!", name);
----------------------------------------------------------------------
string name = "Vjor";
string greeting = $"Hello, {name}!;
String return
public string Greeter(string name)
{
return $"Hello {name}!";
}
----------------------------------------------------------------
public string Greeter(string name) => $"Hello {name}!";
String Initalize
Person person = new Person();
person.FirstName = "Vianne";
person.LastName = "Durano";
---------------------------------------------
var person = new Person {
FirstName = "Vianne",
LastName = "Durano"
};
Multiple return
public Person GetName()
{
var person = new Person
{
FirstName = "Vincent",
LastName = "Durano"
};
return person;
}
----------------------------------------------------------------
public (string FirstName, string LastName) GetName()
{
return ("Vincent", "Durano");
}
Pascal 표현
public class ClassName
{
const int MaxPageSize = 100;
public string PropertyName { get; set; }
public void MethodName()
{
//do something
}
}
interface prefix
public interface IPersonManager
{
//...
}
Global Value / Global Class _로 표현
private readonly ILogger<ClassName> _logger;
private long _rowsAffected;
private IEnumerable<Persons> _people;
등등 총 35가지의 팁이 예시와 설명이 잘되어있다.
실제 C# 버전이 업그레이드되면서 바뀐 항목들과 일관성 있게 처리하기 위한 방법이라고 한다.
실제 Visual Studio에서 작업하다가 보면 어시스트에서 변경을 권하는 방식들도 포함되어 있다.
결국 코드는 작업자들끼리의 일관된 규칙으로 개발이 진행되어야 한다.
C# CODING GUIDELINES AND PRACTICES | 2020 : [ 링크 ]
★★☆☆☆
반응형
'개발 > 게임) 개발관련' 카테고리의 다른 글
Tip)Firebase - Debug View (디버깅 뷰 사용하기) (0) | 2021.05.20 |
---|---|
개발용어)서드 파티 (3rd Party / third party) (0) | 2021.04.27 |
개발관련) AAB(Android App Bundle) (0) | 2021.04.22 |
문제해결)VisualStudio) 설치 관리자 속도 느릴 때 (오프라인 설치) (0) | 2021.04.14 |
개발환경)젠킨스(Jenkins)로 구글 플레이 스토어 업로드 하기 (0) | 2021.04.13 |
댓글