레이블이 c#인 게시물을 표시합니다. 모든 게시물 표시
레이블이 c#인 게시물을 표시합니다. 모든 게시물 표시

2020년 1월 17일 금요일

Unicode 공백문자 제거

닉네임 설정 시 공백문자를 제거하기 위한 코드
1 2 3 사이에 모든 유니코드 공백문자들이 들어있다.


1
2
3
string myString = "1   2          3";
myString = new string(myString.Where(c => !char.IsWhiteSpace(c)).ToArray());
Console.WriteLine(myString);
테스트 해 보니 123 으로 잘 나온다.

2020년 1월 6일 월요일

애용하는 c#, c++ Web IDE

간단한 테스트 로직 작성하고 싶은데 유니티 프로젝트에서 파일을 만들어서 테스트 런너를 돌리기 조차 귀찮을 때가 있다.
그럴때 유용한 사이트들 모음

https://dotnetfiddle.net/
https://rextester.com/

구름 도 나쁘지 않아서 꽤 사용했었다.

C++ 도 추가. C++ 17까지 지원한다.

2018년 12월 13일 목요일

Unity에서 string.Format 으로 숫자에 comma 찍기

재화 표시에 Comma 를 추가하기 위해
string text = string.Format("{0:0.#,###}", Gold)
를 사용중이었는데, Gold가 0일 경우 string이 "0" 이 아니라 비어있었다.

애용하는 c# web ide 페이지에서는 같은코드를 사용해도 0으로 출력이 잘되는걸로 보아 유니티 문제인듯.

string.Format("{0:n0}", Gold)
를 사용하면 0도 정상적으로 표시 된다.

Gold.ToString("#,##0") 도 된다.

2018년 7월 3일 화요일

소소한 최적화


생각날 때마다 업데이트.
  • transform.position = p; transform.rotation = r; 대신 transform.SetPositionAndRotation(p,r)
  • null 조건 연산자를 사용하라
public class EventSource
{
    private EventHandler<int> Update;
    private int counter;    

    public void RaisUpdates()
    {
        counter++;
        if (Update != null)
            Update(this, counter);
    }
}
대신

    public void RaisUpdates()
    {
        counter++;
        Update?.Invoke(this, counter);
    }
Effective c# 8장 참고. Atomic 하다고 함.


  • Enum 을 문자열로 바꿀 때 nameof(MyEnum.EnumValue);
  • c# 7.2 에서 추가된 in 키워드를 최대한 활용하자. 링크 구조체를 파라매터로 넘길 때 속도가 10.1배 정도 차이가 난다
  • 만들 갯수가 예측되는 프리팹은 동적으로 만들지 말고 미리 만들어 놓자.

2018년 6월 21일 목요일

서버에서 DateTime을 문자열로 받는 경우


  1. 점검 시간 표시를 위해 서버에서 UTC 시간을 string 으로 받아오고 있었음.
  2. 서버에서 받은 string을 Local 로 변환하기 위해서 DateTime.Parse(문자열).ToLocalTime(); 을 사용하고 있었음.
  3. 서버 머신의 OS가 영문에서 한글로 바뀜
  4. 서버에서 주는 string의 내용이 6/21/2018 6:59:22 AM 에서 6/21/2018 오전 6:59:22 으로 변경됨
  5. DateTime.Parse 예외 발생


해결
  • 서버에서 ToString("yyyy-MM-dd HH:mm:ss") 으로 변경함.