초기화 2

[dart] 밑줄(_) 변수를 생성자에서 파라미터로 받아서 초기화하는 법

Dart에는 public, protected & private같은 키워드가 존재하지 않는다. 대신 식별자가 밑줄로 시작하면 라이브러리 전용 식별자가 된다. 사실 이 부분에 대해서 쓸려고 한 것은 아니기 때문에 해당 부분은 https://dart.dev/language/libraries 에서 확인하면 될 것 같다. 문제는 해당 방법을 사용한 식별자를 생성자에서 파라미터로 받아서 초기화 하려고 할 때 마주할 수 있다. 우선 아래의 샘플코드를 보자. class Sample { final int _number; Sample(this._number); } 이렇게 사용할 경우 아무런 문제가 되지 않는다. 다만 class Sample { final int? _number; Sample({this._number}); ..

개발/dart&flutter 2024.03.08

Newtonsoft.Json 사용시 생성자에서 리스트를 초기화할때 중복으로 들어가는 문제

개인적으로 Newtonsoft.Json은 C#을 사용할 때 거의 항상 사용하게되는 라이브러리다. 이번에 class의 생성자에서 list를 생성하고 초기값을 집어넣는 코드를 넣었는데, json을 Deserialize 할 때, 생성자에서 넣어둔 값이 중복으로 들어가는 문제가 발생했다. 정확히는 생성자에서 넣어둔 초기값이 먼저 들어가고 json Deserialize한 값들이 추가로 들어가는 것을 확인했다. 처음에는 이를 처리하기 위해 아래처럼 우회했다. public class TestClass { public TestClass(bool isInit = false) { // 블라블라 } } 위와 같이 생성자의 파라미터에 초기값을 선언해주고 사용하게 될경우 Deserialize할 때 생성자가 호출되지 않는것을 확..

개발/C#&unity 2024.02.17