총방문자
오늘
어제
서버와 네트워크
자원이나 서비스를 제공하는 서버와 그자원을 요청하는 클라이언트로 구분해 요청과 응답을 수행하는 컴퓨팅 환경 역활에 따라서 서버와 클라이언트를 구분한다. 서버의 유형 웹서버 (HTTP/HTTPS 프로토콜을 이용함) 파일 서버 (FTP 프로토콜을 이용함) API 서버 (XML,JSON 형식을 이용함 응용 프로그램에서 이용) ASP.NET (.NET과 C# 프로그래밍 언어를 사용해 웹 앱과 웹 서비스를 만들기 위한 프레임워크)
숫자 맞추기 게임
우선 폼 배치는 이렇게 해두었다. 작동 원리는 랜덤 숫자 버튼을 눌러 랜덤한 숫자를 생성한다. 이후 텍스트 박스에 숫자를 쓴뒤 정답 버튼눌러 정답을확인 하는 방식으로만들었고 텍스트 박스를 숫자만 입력되게 할수 있지만 예외처리를 한번 사용해주기 위해 그냥 두고 문자열이 입력 되었을 경우에 예외처리를 해주었다 namespace FiindNumber { public partial class Form1 : Form { Random randomObj = new Random(); int randomValue; int inputNumber; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { ..
c#WINFORM 로그인창 만들기
프로젝트 생성부분은 이전글 에서 보고 오기! 해당 공부한것 관련 코드 https://github.com/jaeil777/Study_Csharp/tree/main/LoginPractice 나는 일단 이런식으로 label 과 button, textbox 를 구성하였다 textbox 의경우 각각 id , password 라는 name 을 주었으며 password가 표시 되지 않도록 password char 부분을 설정해 주었다 (진짜 좋은듯 자바로 할떈 다 일일이 쳐서 넣었는데...) 그리고 일단 기본적인 동작을 위해 id와 password 를 지정해놓고 맞으면 성공 아니면 실패로 넣어 두었는데 추후에 유니티 프로젝트를 진행할때 db 또는 내부 저장소를 이용해서 로그인 및 회원가입을 만들수 있도록 할까 생각중..
WINFORM 기초
윈폼은 윈도우즈 폼의 단축어이며 윈도우즈 기반 사용자 인터페이스 애플리케이션을 만들기 위한 환경 https://github.com/jaeil777/Study_Csharp/tree/main/WinFormsTest 생성 하는법 새프로젝트 만들기를 선택한다. Windows Forms 앱을 선택 후 프로젝트를 만든다. 대충 이런화면 좌측의 도구상자를 통해서 원하는 컴포넌트를 드래그앤 드롭으로 놓아서 배치할수 있다.... 너무 쉬워짐 ㅠㅠ 속성에서 글씨 크기및 송성을 변경할수 있다. 번개 표시를 눌러 이벤트를 생성할수 있다 생성한 이벤트는 cs 파일에서 바로 생성된걸 확인할수 있다. 대충 버튼을 눌러서 헬로 월드를 실행하게끔 함
c# 예외처리
예외처리 : 정상적으로 처리되지 않고, 예상하지 못한 결과를 도출하는 것을 방지하는 기능 예외처리를 하지않고 프로그램을 실행하게 되면 프로그램에 문제가 생길수 있고 잘 돌아가는 코드 또한 안전장치로써 사용을 해줄수 있다 class MainClass { public static void Main (string[] args) { Console.Write("나눌 숫자를 입력하세요 : "); int divider = int.Parse(Console.ReadLine()); Console.WriteLine(10/divider); } 이라는 예제에서 입력을 받은 숫자로 인해 나누어 졌을때 int(정수형)이 아닌 문자열 또는 다른 형태의 값을 받았을때 오류를 뿜어낸다 예외처리(try catch) 이용 class Mai..
c# 컬렉션(Collections)
컬렉션 : 여러 데이터 형을 포함해 입력과 출력, 데이터 처리를 수행할 수 있는 자료 구조 데이터를 다루기 편리한 구조의 집합 ArrayList,Queue,Stack,Hashtable ArrayList : 순차적으로 값이 추가됨 가변적임 여러가지 데이터형을 섞어서 저장가능 using System; using System.Collections; //이 네임스페이스가 있어야 컬렉션 안의 것들을 사용 가능하다. class MainClass { public static coid Main (string[] args) { ArrayList al = new ArryList(); // Add 메소드를 통해 아이템 추가 // array와의 차이점은 데이터 형이 다르더라도 모두 사용가능 al.Add(1); al.Add("..
c# 배열
배열 : 여러값을 저장할 수 있는 자료 구조 데이터형[] 변수명; 배열을 선언 함 배열을 초기화 하는 방법 //배열을 초기화하는 첫 번째 방법 int[] array1 = new int[3]; array1[0] = 10; array1[1] = 20; array1[2] = 30; //배열을 초기화하는 두 번째 방법 int[] array2 = new int[]{1,2,3}; // for 반복문을 통해 배열의 인덱스 접근 및 값 출력 for(int i=0 i
c# 클래스의 데이터 전달
클래스의 데이터를 전달하는 방법에는 매개 변수, 멤버변수 ,메소드로 전달하는 방법이 있다. Console.WriteLine("Hello World!"); Console.WriteLine 메소드를 통해 매개변수로 Hello World!를 출력하도록함. 멤버변수 class Dog { public string Name; public Cat(string name){ Name = name; Console.WriteLine("개의 이름은 " +Name+"입니다"); } } class MainClass { Cat mumu = new Cat("킁킁"); //개의 이름을 킁킁으로 생성자로 지정해주면서 호출도함 mumu.Name = "똥개"; // 개의 이름을 똥개로 변경함 Console.WriteLine("개의 이름은 ..
c#상속,오버라이딩
하나의 기반 클래스를 사용하여 파생 클래스를 생성하는것 예) 라면 클래스를 사용하여 짜장라면 클래스를 생성한다. 장점: 짜장은그대로 두고 라면의 기능만 수정하고 싶을때 수정 하면 된다 상속 예시 class Ramen{ public void heat(){ Console.WriteLine("라면면발을 끓입니다.") } } class Jajangramen: Ramen{ public viod jajang(){ Console.WriteLine("짜장소스를 끓입니다") } } class Program { Jajangramen jaja= new Jajangramen(); jaja.heat(); jaja.jajang(); } 오버라이딩 상속받은 메소드에서 같은 메소드의 이름을 생성하였을때 메소드를 재정의한다 메소드의 ..
c# 생성자와소멸자
클래스의 시작과 종료는 생성자와 소멸자를 통해 구현이 가능하다 생성자 클래스가 인스턴스가 될때 가장먼저 호출되는 메소드 소멸자 클래스가 마무리될때 정리를 해주게끔 쓰이는 메소드 생성자1 class Cat { public Cat(){ Console.WriteLine("생성자가 호출 되었습니다"); } } class Program { Cat myCat = new Cat(); } 생성자2 class Cat { public string Name; public Cat(string name){ Name = name; Console.WriteLine("생성자이름"+Name+" 이다"); } } class Program { Cat myCat = new Cat("까까"); } 생성자3 class Cat { public ..
C# 클래스,인스턴스
클래스 설계도면(자바에서 클래스 붕어빵틀) 인스턴스 설계도를 실체화함(자바에서 객체 붕어빵) 클래스와 인스턴스 구조 class Person{ //속성 public string Name; public string Birth; public string Gender; //메소드 public void Eat() { // 먹는행위 } public void Walk() { // 걷는행위 } public void Run() { // 뛰는행위 } } class MainClass { Person p1; //Person 클래스를 p1 이라는 인스턴스 변수로 생성 p1 = new Person(); //메모리공간을 할당 p1.Name ="서준"; // 인스턴스에서 name속성을 지정해줌 p1.Eat(); // Person클래..
형변환
데이터의 형식을 변경해 데이터를 담는 과정 c#에서의 데이터 형태 bool 참과거짓 byte 정수 sbyte 부호 있는 정수 short 정수 ushort 부호없는 정수 int 정수 uint 부호 없는 정수 long 정수 ulong 부호없는정수 char 유니코드문자 float 실수 double 실수 decimal 실수 오버플로우 데이터 형식을 변환하는 과정에서 데이터 손실이 발생하는 현상 (흔히 게임에서 데이터 형식의 오류로 인한 오버플로우 버그가 많이 발생한다) ex) byte의 범위는 0~255 까지인데 int 500의 데이터를 byte로 변환시 오버플로우 발생 암시적 형변환 byte v1 = 32; byte v2 = 64; int v3 = v1 + v2; Console.WriteLine(v3); 명시..
연산자
연산자는 데이터를 가공하고, 새로운 정보로 만들기 위한 도구 산술연산자 +, -, *, / , % 증가/감소 ++ 연산자 연산자 -- 관계연산자 > , =,
조건문 반복문
조건문 참과 거짓으로 나뉘며 프로그램의 실행순서나 비슷한 작업을 반복적으로 수행해야할때 조건식 의미 A == B A와 B가 같다 A != B A와 B가 같지않다 A > B A가B보다 크다 A >= B A가B보다 크거나 같다 A
절차적 프로그래밍과 객체지향 프로그래밍
절차적 프로그래밍 시간의 흐름에 따라 코드를 작성하는 프로그래밍 스타일 c언어 ,포트란,베이직 ex) 그림을 그리는 과정 1.종이를 준비한다 2.펜을 선택한다 3.밑바탕을 스케치한다 4.색을 칠한다 5.완성~ 샌드위치 코딩방법 이라 하여서 해외에서 유명한 교육방법도 있다는데 육아할때 써먹어야겠다. 객체지향 프로그래밍 언어 모든 사물을 객체로 표현, 객체의 속성과 메소드의 호출로 프로그램을 작성함 각각의 객체간에 데이터를 주고받는 부분이 중요하다. 메인객체에서는 순서나 과정이 표시가 된다 각각의 개체들은 자기 역활만 수행을 하게 된다. 객체지향 프로그래밍 언어에서는 문제가 생겼을때 객체를 확인하여 수정을 하여 주면 된다 상속이라는 개념이 있어서 부모 객체에서의 기능을 받아와서 사용할 수 있다. c++,JA..