Flutter 는 모든것이 widget 으로 이루어 졌다고 생각함 2가지 위젯 StatelessWidget : UI가 변경될 수 없는 위젯 StatefulWidget : UI가 변경 가능한 위젯 단축키 : stful _name 언더바는 private 로 없으면 public 플루터에서 네이티브에 있는 코드를 활용할 때 위 그림에 있는 MethodChannel을 활용 StreamBuilder 위젯중 하나 Bloc 패턴 bloc 패턴을 사용할 때는 rxdart라는 라이브러리를 보통 사용한다. 이를 위해서는 pubspec.yaml 파일의 dependencies: 하위에 하단 소스를 추가한다. ( https://pub.dev/ 사이트에서 원하는 패키지 검색후 Installing 탭을 누르면 가장 최신 버전을 볼 ..
프로그래밍
(입력 파라메터) => { 실행문 };
열거형 상수를 좀더 기억하기 쉽게 하기 위해서 사용함. public enum Category { Food, Music, Spots, Life }
C# 문자열은 Immutable(불변) 즉 한번 문자열이 설정되면, 다시 변경할 수 없다. C#의 키워드 string은 .NET의 System.String 클래스와 동일 문자열은 배열과 동일하다. 배열처럼 인덱싱 할 수 있다. 문자열 갱신이 많은 경우는 System.Text.StringBuilder 를 사용한다.
배열선언. string[] a = new string[10]; string[] b = {'a','b','c'}; using System; namespace ArrayTest { class Program { static void Main(string[] args) { string[] name = new string[4]; name[0] = "영이"; name[1] = "철수"; name[2] = "호진"; name[3] = "민우"; foreach (string item in name) { Console.WriteLine(item); } for (int i = 0; i < name.Length; i++) { Console.WriteLine(name[i]); } } } }
class는 붕어빵 틀이라고 생각하면 된다. 즉 무언가를 찍어내는 하나의 틀 도구라고 생각하면 개념잡기가 편하다. 이 붕어빵 틀에는 여러가지 기능과 속성을 넣을 수 있다. 예를 들어서 강아지 형태의 틀을 하나 만든다고 생각해 보자. 강아지는 기본형태가 있다. 다리가 4개, 눈, 코, 입, 꼬리 강아지 마다의 상태를 유지하기 위해서 필요한 것이 필드이다. [필드 Field] 다리 = 4개 눈 = 2개 입 = 1개 꼬리 = 1개 강아지는 뛰어다니고 짖는다. 이걸 기능으로 하나씩 만든다면 다음과 같다. [기능 Method] 뛰어다닌다.() 짖다.() 강아지 틀을 만들때 각각의 상태를 변경하거나 확인할 때 필요한 설정이 속성이다. [속성 Property] 다리 눈 입 꼬리 강아지의 움직임에 따른 알람을 외부로 ..
// int A; // readonly int B; // const int C; class CSVar { // 기본값을 설정하지 않으면, 0으로 세팅됨. int A; // 나중에 값을 세팅할 수 있다. readonly int B; // 무조건 값을 세팅하지 않으면, 에러가 발생함. const int C = 100; public void Method() { B = 200; } }
mkdir CSharpProject cd CSharpProject dotnet new console code . Visual Studio Code 가 실행되면서 만들어둔 프로젝트 폴더가 열린다.

macOS 기본셀이 bash 에서 zsh 셀로 변경됨. (2019년 부터) Visual Studio Code에서 cmd + shift + p (명령파렛트) 열기 Shell Command: Install 'code' command in PATH 실행하면 됨.. 하지만, 위의 경고가 발생하는 경우..직접 배치파일을 만들어야 한다. 터미널을 열고 다음과 같이 입력 vim ~/.zshrc 문서가 열리면 아래코드를 추가해서 저장함. code () { VSCODE_CWD="$PWD" open -n -b "com.microsoft.VSCode" --args $* ;} vi 에디터를 사용할 줄 모르면 문서가 열리면 영문자 i 를 누른다. ( Insert 상태로 변경됨) 복사해서 붙여 넣는다. 이후 shift + ; 해..
// Abstract classes can't be instantiated. abstract class Item { void use(); } // Classes can implement other classes. class Chest implements Item { final List contents; // Constructors can assign arguments to instance variables using `this`. Chest(this.contents); @override void use() => print('$this has ${contents.length} items.'); } class Sword implements Item { int get damage => 5; @override ..
const, final 키워드는 둘다 한번 설정한 값을 수정할 수 없다. 차이점은 const 는 컴파일시에 이미 값을 정해야 한다. final 은 실행시에 값을 정해도 된다.
https://dart.dev/ Dart programming language Dart is a client-optimized language for fast apps on any platform dart.dev