HTML 단락
HTML 단락은 <p>
태그 로 정의됩니다 .
//입력시
<!DOCTYPE html>
<html>
<body>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
</body>
</html>
//출력시
This is a paragraph.
This is another paragraph
HTML 단락은 <p>
태그 로 정의됩니다 .
//입력시
<!DOCTYPE html>
<html>
<body>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
</body>
</html>
//출력시
This is a paragraph.
This is another paragraph
HTML 표제는 <h1>
to <h6>
태그 로 정의됩니다 .
<h1>
가장 중요한 제목을 정의합니다. <h6>
가장 중요하지 않은 제목을 정의합니다.
//입력
<!DOCTYPE html>
<html>
<body>
<h1>This is heading 1</h1>
<h2>This is heading 2</h2>
<h3>This is heading 3</h3>
<h4>This is heading 4</h4>
<h5>This is heading 5</h5>
<h6>This is heading 6</h6>
</body>
</html>
모든 HTML 문서는 문서 유형 선언으로 시작해야합니다 <!DOCTYPE html>
.
HTML 문서 자체는로 시작 <html>
하고로 끝납니다 </html>
.
HTML 문서의 보이는 부분은와 사이 <body>
에 </body>
있습니다.
<!DOCTYPE html>
<html>
<body>
<h1>My First Heading</h1>
<p>My first paragraph.</p>
</body>
</html>
C# 상속 개념과 가상 메서드 as/is 연산자 (0) | 2018.12.17 |
---|---|
필드속성과 접근제한자 datetime (0) | 2018.12.16 |
객체와 클래스 (0) | 2018.12.14 |
C# 메소드,오버로딩 (0) | 2018.12.10 |
C#기술면접 객체지향프로그래밍? (0) | 2018.12.10 |
클래스란 설계도
객체를 찍어내는것을 인스턴스화 라고한다
New 연산자를 이용해서 만든것을 객체또는 인스턴스
만드는것을 인스턴스화라고한다
클래스로 객체인스턴스를 만드는것을 인스턴스화한다고 한다.
클래스의 속성
클래스의 변수를 필드
클래스의 함수를 메서드라고 한다.
클래스의 생성자로 특별히 불리는 메서드는
클래스를 호출할때 만드는 함수를 생성자라고한다
생성자는 클래스에서 메서드와 유사한데
클래스를 호출할때 쓰는 것이라 특별하며
퍼블릭을 써야하고 리턴타입
클래스를 생성할때 호출해서 생성자라고 함
클래스는 필드같이보이지만 메서드와 비슷한게 있는데
이걸 프로퍼티
밖에서보면 필드와 같아서
new생성자를 이용해서 인스턴스가 생긴다 이때 클래스호출로 생성자가 생김
필드는 메서드와 유사하게 진행되는데
Int get
{
{reset; }
}
Int set
{ {reset; } }
datetime도 시간 날짜 변수 저장하는 함수 기능이있다
C# 상속 개념과 가상 메서드 as/is 연산자 (0) | 2018.12.17 |
---|---|
배열,for each문 제너럴리스트 list<t>, for each , arrayList (0) | 2018.12.16 |
객체와 클래스 (0) | 2018.12.14 |
C# 메소드,오버로딩 (0) | 2018.12.10 |
C#기술면접 객체지향프로그래밍? (0) | 2018.12.10 |
클래스는 붕어빵을 예로 든다면 붕어빵 틀같은것이다
클래스로 붕어빵클래스를 정의하며 붕어빵에는 밀가루와 우유 팥등의 특징이있고
클래스를 설정한상태에서 붕어빵틀이 완성되고 붕어빵을 붕어빵틀에서 찍어낸다면
붕어빵들은 계속생기는데 이렇게 생기는것을 인스턴스라고 하며
붕어빵 클래스를 설계한후에 인스턴스가 계속 찍어낼수있는것이다.
그럼 이런경우 클래스 설계후 인스턴스는 다른 스크립트에서 호출이 가능하다
그래서 이런 객체들 오브젝트들 인스턴스와 같은것이며 설계나 전체를 바꿀때 클래스를 변경하면 전체 인스턴스를 바꿀수 있다.
배열,for each문 제너럴리스트 list<t>, for each , arrayList (0) | 2018.12.16 |
---|---|
필드속성과 접근제한자 datetime (0) | 2018.12.16 |
C# 메소드,오버로딩 (0) | 2018.12.10 |
C#기술면접 객체지향프로그래밍? (0) | 2018.12.10 |
C# 해외 면접시 TOP50 (0) | 2018.12.10 |
함수를 function 이라고 하는데 C#같은 경우는 메소드라고 불리며
메소드란? 클래스에 속한 함수이다
C++에서는 멤버펑션이라고 한다
예를들어 int nongsim ( int ramen , int water)
{ }
라고 하면 nongsim 은 함수의 프로토타입이라고 할수있으며 return 으로 값이 반환도 된다
return행도 프로토명에 들어감
계산하는 함수를 만든다고 했을때
int add( int number1 , int number2 )
{
int sum = number1 +number2;
label.text =sum.ToString();
}
float add( float number1 , float number2 )
{
float sum = number1 +number2;
label.text =sum.ToString();
}
이렇게 실수를 더하는 함수 정수를 더하는 함수로 정의가 가능한데
함수는 매개변수가 다르면 여러개 만들수 있는데 매개변수의 타입이 다르거나 매개변수의 데이터 가 다르면 여러개를 만들수있고 이러한 형태를
같은 이름의 함수가 다른 매개변수를 가지고 여러개 정의되는 것을 오버로딩 (overloading)이라고 한다
필드속성과 접근제한자 datetime (0) | 2018.12.16 |
---|---|
객체와 클래스 (0) | 2018.12.14 |
C#기술면접 객체지향프로그래밍? (0) | 2018.12.10 |
C# 해외 면접시 TOP50 (0) | 2018.12.10 |
주인공을 따라다니는 카메라 만들기 following camera (0) | 2018.12.10 |
객체지향이란 프로시저 프로그래밍에서 파생되었고
이 프로시저프로그래밍의 복잡성이나 단점을 보완하기위해 나왔으며
특징은 캡슐,상속,다형성 등이있다
객체라는 그룹에 함수가 집합으로 있는것과 같다
object programming
procedeurl programming
객체와 클래스 (0) | 2018.12.14 |
---|---|
C# 메소드,오버로딩 (0) | 2018.12.10 |
C# 해외 면접시 TOP50 (0) | 2018.12.10 |
주인공을 따라다니는 카메라 만들기 following camera (0) | 2018.12.10 |
TouchPad.cs (0) | 2018.12.10 |
Q # 1) 객체와 클래스 란 무엇입니까?
Ans : 클래스는 실시간 엔터티를 나타내는 데 사용되는 속성 및 메서드의 캡슐화입니다. 모든 인스턴스를 단일 단위로 결합하는 데이터 구조입니다.
클래스의 인스턴스에있는 객체입니다. 기술적으로 이것은 변수, 배열 또는 컬렉션 형태로 저장 될 수있는 할당 된 메모리 블록 일뿐입니다.
Q # 2) 기본적인 OOP 개념은 무엇입니까?
Ans : 객체 지향 프로그래밍의 네 가지 기본 개념은 다음과 같습니다.
Q # 3) Managed 및 Unmanaged 코드 란 무엇입니까?
Ans : 관리 코드 는 CLR (Common Language Runtime), 즉 .Net Platform을 기반으로하는 모든 응용 프로그램 코드에 의해 실행되는 코드입니다. 사용되지 않는 메모리를 정리하기 위해 내부적으로 가비지 수집기를 사용하는 .Net 프레임 워크 때문에 관리되는 것으로 간주됩니다.
비 관리 코드 는 .Net을 제외한 다른 프레임 워크의 응용 프로그램 런타임에서 실행되는 코드입니다. 응용 프로그램 런타임은 메모리, 보안 및 기타 성능 작업을 처리합니다.
Q # 4) 인터페이스 란 무엇입니까?
Ans : 인터페이스 는 구현이없는 클래스입니다. 여기에는 메서드, 속성 및 이벤트의 선언 만 포함됩니다.
Q # 5) C #의 여러 클래스 유형은 무엇입니까?
Ans : C #의 여러 유형의 클래스는 다음과 같습니다.
Q # 6) C #에서 코드 컴파일을 설명하십시오.
Ans : 코드 컴파일에는 다음과 같은 네 단계가 있습니다.
Q # 7) 클래스와 구조체의 차이점은 무엇입니까?
Ans : Class와 Struct 사이의 차이점은 다음과 같습니다.
수업 | 구조 |
---|---|
상속 지원 | 상속을 지원하지 않습니다. |
클래스는 참조로 전달됩니다 (참조 유형). | Struct by Copy (값 유형) |
회원은 기본적으로 비공개입니다. | 회원은 기본적으로 공개됩니다. |
더 큰 복잡한 객체에 적합 | 소형 격리 모델에 적합 |
메모리 관리를 위해 쓰레기 수거통을 사용할 수 있습니다. | 가비지 수집기를 사용할 수 없으므로 메모리 관리가 필요하지 않습니다. |
Q # 8) 가상 메소드와 추상 메소드의 차이점은 무엇입니까?
ANS : 가상 메소드는 항상 기본 구현을해야합니다. 그러나 필수는 아니지만 파생 클래스에서 재정의 될 수 있습니다. override키워드를 사용하여 재정의 할 수 있습니다 .
추상 방법은 구현이 없습니다. 추상 클래스에 있습니다. 파생 클래스가 추상 메서드를 구현하는 것이 필수입니다. 재정 이 사용될 수 있지만 키워드는 여기에 필요하지 않습니다.
Q # 9) C #에서 네임 스페이스를 설명하십시오.
답변 : 대규모 코드 프로젝트를 구성하는 데 사용됩니다. "시스템"은 C #에서 가장 널리 사용되는 네임 스페이스입니다. 우리는 우리 자신의 네임 스페이스를 만들고 하나의 네임 스페이스를 다른 네임 스페이스, 즉 중첩 네임 스페이스 (Nested Namespaces)라고 사용할 수 있습니다.
키워드는 "네임 스페이스"로 표시됩니다.
Q # 10) C #에서 "using"문은 무엇입니까?
Ans : "키워드 사용"은 특정 네임 스페이스가 프로그램에서 사용되고 있음을 나타냅니다.
예를 들어, 시스템을 사용하십시오 . 여기서 System 은 네임 스페이스입니다. 콘솔 클래스는 시스템 아래에 정의됩니다. 따라서 우리 프로그램에서 console.writeline ( "....") 또는 readline을 사용할 수 있습니다.
Q # 11) 추상화를 설명하십시오.
Ans : 추상화 는 OOP 개념 중 하나입니다. 클래스의 필수 기능 만 표시하고 불필요한 정보는 숨 깁니다.
자동차 예를 들어 보겠습니다.
자동차의 운전자는 색상, 이름, 거울, 조향 장치, 기어, 브레이크 등과 같은 자동차의 세부 사항을 알아야합니다. 내부 엔진, 배기 시스템은 무엇인지 알 필요가 없습니다.
따라서 추상화는 필요한 것을 파악하고 외부 세계에서 내부 세부 정보를 숨기는 데 도움이됩니다. private 키워드를 사용 하여Private와 같은 매개 변수를 선언하면 내부 정보를 숨길 수 있습니다 .
Q # 12) 다형성을 설명 하시겠습니까?
Ans : 프로그래밍 방식으로 다형성 이란 동일한 방법이지만 구현이 다르다는 것을 의미합니다.
컴파일 시간과 런타임의 두 가지 유형입니다.
컴파일 시간 다형성 은 연산자 오버로딩에 의해 달성됩니다.
런타임 다형성 은 오버라이드 (override)에 의해 달성된다. 상속 및 가상 함수는 런타임 다형성 중에 사용됩니다.
예를 들어 , 클래스에 Void Add () 메소드가있는 경우, 다형성은 메소드 오버로드, 즉 void Add (int a, int b), void Add (int add)는 모두 오버로드 된 메소드입니다.
Q # 13) C #에서는 예외 처리가 어떻게 구현됩니까?
Ans : 예외 처리는 C #의 네 가지 키워드를 사용하여 수행됩니다.
Q # 14) C # I / O 클래스 란 무엇입니까? 일반적으로 사용되는 I / O 클래스는 무엇입니까?
Ans : C #에는 생성, 삭제, 열기, 닫기 등과 같은 파일에 대한 다양한 작업을 수행하는 데 사용되는 클래스로 구성된 System.IO 네임 스페이스가 있습니다.
일반적으로 사용되는 I / O 클래스는 다음과 같습니다.
Q # 15) StreamReader / StreamWriter 클래스 란 무엇입니까?
Ans : StreamReader 및 StreamWriter 는 네임 스페이스 System.IO의 클래스입니다. characters90, Reader 기반 데이터를 각각 읽고 쓰고 싶을 때 사용됩니다.
StreamReader의 멤버 중 일부는 Close (), Read (), Readline ()입니다.
StreamWriter의 멤버는 Close (), Write (), Writeline ()입니다.
1 | Class Program1 |
2 | { |
3 | using (StreamReader sr = new StreamReader(“C:\ReadMe.txt”) |
4 | { |
5 | //----------------code to read-------------------// |
6 | } |
7 | using (StreamWriter sw = new StreamWriter(“C:\ReadMe.txt”)) |
8 | { |
9 | //-------------code to write-------------------// |
10 | } |
11 | } |
Q # 16) C #의 소멸자 란 무엇입니까?
ANS : 소멸자는 메모리를 정리하고 자원을 확보하는 데 사용됩니다. 그러나 C #에서는 가비지 컬렉터가 자체적으로 수행합니다. 정리를 위해 System.GC.Collect ()가 내부적으로 호출됩니다. 그러나 때로는 소멸자를 수동으로 구현해야 할 수도 있습니다.
예 :
~ 자동차 () { Console.writeline ( "...."); }
Q # 17) 추상 클래스 란 무엇입니까?
ANS : 추상 클래스는 추상적 인 키워드로 표시되며, 기본 클래스로만 사용할 수있는 클래스입니다. 추상 클래스는 항상 상속되어야합니다. 클래스 자체의 인스턴스는 만들 수 없습니다. 어떤 프로그램이 어떤 클래스의 객체를 생성하기를 원하지 않는다면, 그러한 클래스는 추상화 될 수 있습니다.
추상 클래스의 모든 메소드는 동일한 클래스에 구현되지 않습니다. 그러나 그들은 어린이 수업에 구현되어야합니다.
예 :
1 | abstract class AB1 |
2 | { |
3 | Public void Add(); |
4 | } |
5 | Class childClass : AB1 |
6 | { |
7 | childClass cs = new childClass (); |
8 | int Sum = cs.Add(); |
9 | } |
추상 클래스의 모든 메소드는 암시 적으로 가상 메소드입니다. 따라서 가상 키워드는 추상 클래스의 어떤 메소드와도 함께 사용되어서는 안됩니다.
Q # 18) 복싱과 언 박싱은 무엇입니까?
Ans : 값 유형을 참조 유형으로 변환하는 것을 Boxing 이라고 합니다.
예 :
int Value1 - = 10;
//----권투------//
개체 boxedValue = Value1;
같은 참조 유형 (boxing에 의해 생성 된)을 값 유형으로 다시 명시 적으로 변환하는 것을 Unboxing 이라고 합니다.
예 :
// ---- UnBoxing ------ //
int UnBoxing = int (boxedValue);
Q # 19) 계속과 휴식 진술의 차이점은 무엇입니까?
Ans : Break 문은 루프를 중단합니다. 그것은 프로그램을 제어하여 루프를 종료합니다. Continue 문 은 현재 반복 만 종료하도록 프로그램을 제어합니다. 루프를 깨지는 않습니다.
Q # 20) 최종 블록과 최종 블록의 차이점은 무엇입니까?
Ans : finally 블록 은 try와 catch 블록을 실행 한 후에 호출됩니다. 예외 처리에 사용됩니다. 예외가 포착되었는지 여부에 관계없이이 코드 블록이 실행됩니다. 일반적으로이 블록에는 정리 코드가 있습니다.
finalize 메서드는 가비지 수집 직전에 호출됩니다. 비 관리 코드의 정리 작업을 수행하는 데 사용됩니다. 지정된 인스턴스가 연속적으로 호출되지 않을 때 자동으로 호출됩니다.
Q # 21) 배열이란 무엇입니까? 단일 및 다차원 배열에 대한 구문을 제공 하시겠습니까?
Ans : 배열 은 동일한 유형의 여러 변수를 저장하는 데 사용됩니다. 이것은 연속적인 메모리 위치에 저장된 변수의 집합입니다.
예 :
이중 숫자 = 새 이중 [10];
int [] score = 새로운 int [4] {25,24,23,25};
단일 차원 배열은 변수가 단일 행에 저장되는 선형 배열입니다. 위의 예 는 단일 차원 배열입니다.
배열에는 둘 이상의 차원이있을 수 있습니다. 다차원 배열은 직사각형 배열이라고도합니다.
예를 들어 , int [,] numbers = new int [3,2] {{1,2}, {2,3}, {3,4}};
Q # 22) Jagged Array 란 무엇입니까?
Ans : 가변 배열은 요소가 배열 인 배열입니다. 배열의 배열이라고도합니다. 단일 또는 다중 차원 일 수 있습니다.
int [] jaggedArray = 새로운 int [4] [];
Q # 23) Array의 일부 속성 이름을 지정합니다.
Ans : 배열의 속성은 다음과 같습니다.
Q # 24) Array 클래스 란 무엇입니까?
ANS : Array 클래스는 모든 배열의 기본 클래스입니다. 그것은 많은 특성과 방법을 제공합니다. 시스템 네임 스페이스에 있습니다.
Q # 25) 문자열이란 무엇입니까? String 클래스의 속성은 무엇입니까?
ANS : 문자열은 문자 개체의 컬렉션입니다. C #에서 문자열 변수를 선언 할 수도 있습니다.
문자열 이름 = "C # 질문";
C #의 문자열 클래스는 문자열을 나타냅니다.
String 클래스의 속성은 Chars 및 Length입니다.
Chars 는 현재 String에서 Char 객체를 가져옵니다.
Length 는 현재 String의 객체 수를 가져옵니다.
Q # 26) 이스케이프 시퀀스 란 무엇입니까? C #에서 일부 문자열 이스케이프 시퀀스의 이름을 지정합니다.
ANS : 이스케이프 시퀀스는 백 슬래시 (\)로 표시된다. 역 슬래시는 뒤 따르는 문자가 문자 그대로 해석되어야하거나 특수 문자임을 나타냅니다. 이스케이프 시퀀스는 단일 문자로 간주됩니다.
문자열 이스케이프 시퀀스는 다음과 같습니다.
\ n - 개행 문자
\ b - 백 스페이스
\\ - 백 슬래시
\ '- 작은 따옴표
\' '- 큰 따옴표
Q # 27) 정규식이란 무엇입니까? 정규식을 사용하여 문자열을 검색 하시겠습니까?
Ans : 정규 표현식 은 일련의 입력과 일치하는 템플릿입니다. 패턴은 연산자, 구문 또는 문자 리터럴로 구성 될 수 있습니다. 정규 표현식은 문자열 파싱 및 문자열 교체를 위해 사용됩니다.
예 :
*는 앞의 문자를 0 번 이상 찾습니다. 따라서 a * b 정규 표현식은 b, ab, aab, aaab 등과 동일합니다.
정규식을 사용하여 문자열 검색
1 | static void Main( string [] args) |
2 | { |
3 | string [] languages = { "C#" , "Python" , "Java" }; |
4 | foreach ( string s in languages) |
5 | { |
6 | if (System.Text.RegularExpressions.Regex.IsMatch(s, "Python" )) |
7 | { |
8 | Console.WriteLine( "Match found" ); |
9 | } |
10 | } |
11 | } |
위의 예제는 languages 배열의 입력 집합에 대해 "Python"을 검색합니다. 패턴이 입력에서 발견되면 true를 반환하는 Regex.IsMatch를 사용합니다. 패턴은 우리가 일치시키고 자하는 입력을 나타내는 모든 정규식 일 수 있습니다.
Q # 28) 기본적인 String Operations 란 무엇입니까? 설명.
Ans : 기본 문자열 작업 중 일부는 다음과 같습니다.
Q # 29) 파싱이란 무엇입니까? 날짜 시간 문자열을 구문 분석하는 방법?
Ans : 구문 분석 은 문자열을 다른 데이터 형식으로 변환하는 것입니다.
예 :
문자열 텍스트 = "500";
int num = int.Parse (text);
500은 정수입니다. 따라서 Parse 메서드는 문자열 500을 자체 기본 유형, 즉 int로 변환합니다.
같은 방법으로 DateTime 문자열을 변환하십시오.
string dateTime = "2018 년 1 월 1 일";
DateTime parsedValue = DateTime.Parse (dateTime);
Q # 30) 대의원은 무엇입니까? 설명.
ANS : 대리자 방법에 관한 기준을 유지하는 변수이다. 따라서 참조 유형의 함수 포인터입니다. 모든 대리인은 System.Delegate 네임 스페이스에서 파생됩니다. 대의원과 그것이 대표하는 방법 모두 동일한 서명을 가질 수 있습니다.
대리자 선언 : public delegate void AddNumbers (int n);
대리자를 선언 한 후에는 new 키워드를 사용하여 대리인을 만들어야합니다.
AddNumbers an1 = 새로운 AddNumbers (숫자);
델리게이트는 델리게이트가 호출 될 때 내부적으로 호출되는 참조 메소드에 일종의 캡슐화를 제공합니다.
1 | public delegate int myDel( int number); |
2 | public class Program |
3 | { |
4 | public int AddNumbers( int a) |
5 | { |
6 | int Sum = a + 10; |
7 | return Sum; |
8 | } |
9 | public void Start() |
10 | { |
11 | myDel DelgateExample = AddNumbers; |
12 | } |
13 | } |
위의 예제에서 정수 값을 매개 변수로 사용하는 대리자 myDel이 있습니다. 클래스 프로그램에는 AddNumbers ()라는 위임자와 동일한 서명의 메서드가 있습니다.
대리자의 개체를 만드는 Start ()라는 다른 메서드가있는 경우 대리자의 서명과 동일한 서명을 가지므로 AddNumbers에 개체를 할당 할 수 있습니다.
Q # 31) 이벤트 란 무엇입니까?
Ans : 이벤트 는 응답해야하는 응용 프로그램에 대한 알림을 생성하는 사용자 작업입니다. 사용자 동작은 마우스 움직임, 키 누르기 등이 될 수 있습니다.
프로그래밍 방식으로 이벤트를 발생시키는 클래스를 게시자라고하며 이벤트를 응답 / 수신하는 클래스를 구독자라고합니다. 이벤트에는 이벤트가 발생하지 않는 다른 가입자가 적어도 하나 있어야합니다.
대리인은 이벤트를 선언하는 데 사용됩니다.
Public 대리자 void PrintNumbers ();
이벤트 PrintNumbers myEvent;
Q # 32) 행사와 함께 대의원을 사용하는 방법?
Ans : 대리인은 이벤트를 발생시키고 처리하는 데 사용됩니다. 항상 대리자를 먼저 선언하고 이벤트를 선언해야합니다.
예를 보자.
환자라는 클래스를 생각해보십시오. 환자 클래스의 환자의 사망 정보를 요구하는 보험, 은행 및 기타 두 가지 클래스를 고려하십시오. 여기서 Insurance와 Bank는 가입자이고 Patient 클래스는 게시자가됩니다. 이 이벤트는 사망 이벤트를 트리거하고 다른 두 클래스는 이벤트를 수신해야합니다.
1 | namespace ConsoleApp2 |
2 | { |
3 | public class Patient |
4 | { |
5 | public delegate void deathInfo(); //Declaring a Delegate// |
6 | public event deathInfo deathDate; //Declaring the event// |
7 | public void Death() |
8 | { |
9 | deathDate(); |
10 | } |
11 | } |
12 | public class Insurance |
13 | { |
14 | Patient myPat = new Patient(); |
15 | void GetDeathDetails() |
16 | { |
17 | //-------Do Something with the deathDate event------------// |
18 | } |
19 | void Main() |
20 | { |
21 | //--------Subscribe the function GetDeathDetails----------// |
22 | myPat.deathDate += GetDeathDetails; |
23 | } |
24 | } |
25 | public class Bank |
26 | { |
27 | Patient myPat = new Patient(); |
28 | void GetPatInfo () |
29 | { |
30 | //-------Do Something with the deathDate event------------// |
31 | } |
32 | void Main() |
33 | { |
34 | //--------Subscribe the function GetPatInfo ----------// |
35 | myPat.deathDate += GetPatInfo; |
36 | } |
37 | } |
38 | } |
Q # 33) 대의원의 종류는 무엇입니까?
Ans : 대표단의 종류는 다음과 같습니다.
단일 대리인 - 단일 메서드를 호출 할 수있는 대리자입니다.
Multicast Delegate - 여러 메서드를 호출 할 수있는 대리자입니다. + 및 - 연산자는 각각 가입 및 가입 취소에 사용됩니다.
일반 위임 - 위임의 인스턴스를 정의 할 필요가 없습니다. Action, Funcs 및 Predicate의 세 가지 유형이 있습니다.
Public delegate void deathInfo ();
공개 이벤트 deathInfo deathDate;
// 액션으로 대체 //
공개 이벤트 액션 deathDate;
동작은 암시 적으로 대리자를 나타냅니다.
Func <int, string, bool> myDel 은 델리게이트 bool myDel (int a, string b)과 동일합니다.
술어 <string> myDel 은 대리자 bool myDel (string s) 과 동일합니다 .
Q # 34) 멀티 캐스트 대표는 무엇을 의미합니까?
Ans : 하나 이상의 메소드를 가리키는 Delegate를 Multicast Delegate라고합니다. 멀티 캐스팅은 + 및 + = 연산자를 사용하여 수행됩니다.
32 번 질문의 예를 생각해보십시오.
deathEvent, GetPatInfo 및 GetDeathDetails에 대한 구독자가 두 명 있습니다 . 그래서 우리는 + = 연산자를 사용했습니다. 즉, myDel 이 호출 될 때마다 두 가입자가 호출됩니다. 위임자는 추가 된 순서대로 호출됩니다.
Q # 35) 이벤트에 게시자와 가입자를 설명하십시오.
Ans : 게시자 는 다른 유형의 다른 유형의 메시지를 게시하는 책임을 맡고있는 클래스입니다. 위의 질문에서 논의 된 바와 같이 메시지는 이벤트입니다.
질문 32 의 예 에서 클래스 환자는 게시자 클래스입니다. 그것은 다른 클래스가받는 이벤트 deathEvent를 생성합니다 .
구독자 는 관심있는 유형의 메시지를 캡처합니다. 다시, 질문 32 의 예 에서 클래스 보험 및 은행은 가입자입니다. 그들은 void유형의 이벤트 deathEvent 에 관심이있다 .
Q # 36) 동기 및 비동기 작업이란 무엇입니까?
답변 : 동기화는 주어진 시간에 하나의 스레드 만 리소스에 액세스 할 수있는 스레드 안전 코드를 만드는 방법입니다.
비동기 호출은 프로그램 플로우를 계속하기 전에 메소드가 완료되기를 기다립니다. 동기 프로그래밍은 하나의 스레드 만 사용되므로 사용자가 시간 소모적 인 작업을 수행하려고 할 때 UI 작업에 심각한 영향을 미칩니다.
비동기 작업에서는 메서드 호출이 즉시 반환되므로 호출 된 메서드가 특정 상황에서 작업을 완료하는 동안 프로그램에서 다른 작업을 수행 할 수 있습니다.
C #에서는 Async 및 Await 키워드가 비동기 프로그래밍을 수행하는 데 사용됩니다. 동기 프로그래밍에 대한 자세한 내용 은 질문 43 을 참조하십시오.
Q # 37) C #의 리플렉션은 무엇입니까?
Ans : Reflection은 런타임 중에 어셈블리의 메타 데이터에 액세스하는 코드의 기능입니다. 프로그램 자체를 반영하고 메타 데이터를 사용하여 사용자에게 알리거나 프로그램의 동작을 수정합니다. 메타 데이터는 객체, 메소드에 대한 정보를 참조합니다.
System.Reflection 네임 스페이스에는로드 된 모든 형식 및 메서드의 정보를 관리하는 메서드와 클래스가 포함되어 있습니다. 예 를 들어 윈도우 애플리케이션에서 버튼의 속성을보기 위해 주로 사용됩니다 .
클래스 리플렉션의 MemberInfo 객체는 클래스와 관련된 속성을 검색하는 데 사용됩니다.
리플렉션은 두 단계로 구현됩니다. 먼저 객체의 유형을 얻은 다음 유형을 사용하여 메소드 및 속성과 같은 멤버를 식별합니다.
클래스의 유형을 얻으려면
유형 mytype = myClass.GetType ();
클래스의 유형이 있으면 클래스의 다른 정보에 쉽게 액세스 할 수 있습니다.
System.Reflection.MemberInfo 정보 = mytype.GetMethod ( "AddNumbers");
위의 명령문 은 myClass 클래스에 AddNumbers 라는 이름의 메소드를 찾으려고 시도합니다 .
Q # 38) 일반 수업이란 무엇입니까?
Ans : Generics 또는 Generic 클래스는 특정 데이터 형식이없는 클래스 나 개체를 만드는 데 사용됩니다. 데이터 유형은 런타임 중에, 즉 프로그램에서 사용될 때 할당 할 수 있습니다.
예 :
위의 코드에서 문자열과 int를 비교하기 위해 처음에는 2 개의 비교 메서드를 사용합니다.
다른 데이터 유형 매개 변수 비교의 경우 많은 오버로드 된 메소드를 작성하는 대신 일반 클래스를 작성하여 대체 데이터 유형 (예 : T)을 전달할 수 있습니다. 따라서 T는 Main () 메소드에서 특별히 사용될 때까지 데이터 유형으로 작동합니다 .
Q # 39) 설명 접근 자 속성 가져 오기 및 설정하기?
Ans : Get 및 Set 은 접근 자라 불립니다. 이것들은 Properties에 의해 사용됩니다. 속성은 개인 필드 값을 읽고 쓰는 메커니즘을 제공합니다. 이 private 필드에 액세스하기 위해 이러한 접근자가 사용됩니다.
Get 속성은 속성 값을 반환하는 데 사용됩니다.
Set 속성 접근자는 값을 설정하는 데 사용됩니다.
get과 set의 사용법은 다음과 같습니다.
Q # 40) 쓰레드 란 무엇입니까? 멀티 스레딩이란 무엇입니까?
Ans : A Thread 는 실행될 수있는 명령어의 집합으로, 우리 프로그램이 동시 처리를 수행 할 수있게합니다. 동시 처리는 한 번에 두 가지 이상의 작업을 수행하는 데 도움이됩니다. 기본적으로 C #에는 스레드가 하나만 있습니다. 그러나 원래 스레드와 병렬로 코드를 실행하기 위해 다른 스레드를 작성할 수 있습니다.
스레드는 수명주기가 있습니다. 스레드 클래스가 생성되고 실행 후에 종료 될 때마다 시작됩니다. System.Threading 은 스레드를 만들고 멤버를 사용하기 위해 포함되어야하는 네임 스페이스입니다.
스레드는 스레드 클래스를 확장하여 작성됩니다. Start () 메서드는 스레드 실행을 시작하는 데 사용됩니다.
// CallThread는 대상 메서드입니다. // ThreadStart methodThread = 새로운 ThreadStart (CallThread); 스레드 childThread = 새 스레드 (methodThread); childThread.Start ();
C #은 한 번에 둘 이상의 작업을 실행할 수 있습니다. 이것은 다른 스레드로 다른 프로세스를 처리하여 수행됩니다. 이것을 MultiThreading이라고합니다.
다중 스레드 작업을 처리하는 데 사용되는 여러 가지 스레드 메소드가 있습니다.
시작, 수면, 중단, 일시 중지, 다시 시작 및 가입.
이 방법의 대부분은 자명하다.
Q # 41) 스레드 클래스의 일부 속성 이름을 지정하십시오.
Ans : 스레드 클래스의 몇 가지 속성은 다음과 같습니다.
Q # 42) 스레드의 다른 상태는 무엇입니까?
스레드의 상태는 다음과 같습니다.
Q # 43) 비동기 및 대기는 무엇입니까?
Ans : Async 및 Await 키워드는 C에서 비동기 메서드를 만드는 데 사용됩니다.
비동기 프로그래밍은 프로세스가 주 프로세스 또는 다른 프로세스와 독립적으로 실행됨을 의미합니다.
Async 및 Await의 사용법은 다음과 같습니다.
Q # 44) 교착 상태 란 무엇입니까?
ANS : 교착 상태가 서로 끝날 때까지 두 개 이상의 프로세스가 기다리고 있기 때문에 프로세스가 실행을 완료 할 수없는 상황이다. 이것은 일반적으로 멀티 스레딩에서 발생합니다.
공유 리소스가 프로세스에 의해 보류되고 다른 프로세스가 첫 번째 프로세스가 공유 리소스를 해제하기를 기다리고 있고 잠긴 항목을 포함하는 스레드가 다른 프로세스가 완료되기를 기다리고 있습니다.
아래 예제를 고려하십시오.
이렇게하면 교착 상태가 발생합니다.
Q # 45) L의 설명 옥토퍼스 , 모니터 및 뮤텍스 스레딩에서 개체.
Ans : Lock 키워드는 한 번에 하나의 스레드 만 코드의 특정 섹션에 들어갈 수 있도록합니다. 위의 예 에서 lock (ObjA)은이 프로세스가이를 해제 할 때까지 잠금이 ObjA에 놓여 있음을 의미합니다. 다른 스레드는 ObjA에 액세스 할 수 없습니다.
뮤텍스는 또한 잠금을 좋아되지만 한 번에 여러 프로세스에서 작동 할 수 있습니다. WaitOne ()은 잠금에 사용되고 ReleaseMutex ()는 잠금을 해제하는 데 사용됩니다. 그러나 Mutex는 그것을 획득하고 해제하는 데 시간이 걸리므로 잠금보다 느립니다.
Monitor.Enter 및 Monitor.Exit은 내부적으로 잠금을 구현합니다. 자물쇠는 M onitors 의 지름길입니다 . lock (objA) 내부적으로 호출합니다.
Monitor.Enter (ObjA); 시험 { } 마지막으로 {Monitor.Exit (ObjA));}
Q # 46) 인종 조건이란 무엇입니까?
A : A 레이스 조건 은 두 스레드가 동일한 자원에 액세스하여 동시에 변경하려고 할 때 발생합니다. 리소스에 처음 액세스 할 수있는 스레드는 예측할 수 없습니다.
우리가 T1과 T2라는 두 개의 스레드를 가지고 있고 X라는 공유 자원에 액세스하려고 시도하고 있고 두 스레드가 모두 값을 X에 쓰려고하면 X에 쓰여진 마지막 값이 저장됩니다.
Q # 47) 스레드 풀링이란 무엇입니까?
ANS : 스레드 풀 스레드의 모음입니다. 이러한 스레드는 기본 스레드를 방해하지 않고 작업을 수행하는 데 사용될 수 있습니다. 스레드가 작업을 완료하면 스레드는 풀로 돌아갑니다.
System.Threading.ThreadPool 네임 스페이스에는 풀의 스레드와 해당 작업을 관리하는 클래스가 있습니다.
System.Threading.ThreadPool.QueueUserWorkItem (새 System.Threading.WaitCallback (SomeTask));
위의 줄은 작업을 대기열에 넣습니다. SomeTask 메소드에는 Object 유형의 매개 변수가 있어야합니다.
Q # 48) 직렬화 란 무엇입니까?
Ans : 직렬화 는 코드를 이진 형식으로 변환하는 프로세스입니다. 일단 바이트로 변환되면 디스크 나 다른 저장 장치에 쉽게 저장하고 쓸 수 있습니다. 일련 번호는 원래 형식의 코드를 잃고 싶지 않고 나중에 언제든지 검색 할 수있을 때 주로 유용합니다.
[Serializable] 속성으로 표시된 모든 클래스는 이진 형식으로 변환됩니다.
바이너리 형식에서 C # 코드를 다시 가져 오는 프로세스를 역 직렬화 라고 합니다.
직렬화 할 객체가 필요한 객체를 직렬화하려면 직렬화 된 객체 및 네임 스페이스 System.Runtime.Serialization을 포함 할 수있는 스트림이 직렬화를위한 클래스를 포함 할 수 있습니다.
Q # 49) 직렬화의 유형은 무엇입니까?
Ans : 직렬화의 다른 유형은 XML 직렬화, SOAP 및 이진입니다.
Q # 50) XSD 파일이란 무엇입니까?
Ans : XSD 파일은 XML 스키마 정의를 나타냅니다. XML 파일의 구조를 제공합니다. 즉, XML이 가져야하는 요소와 순서 및 속성이 무엇인지 결정합니다. XML과 연관된 XSD 파일이 없으면 XML은 모든 태그, 모든 속성 및 요소를 가질 수 있습니다.
Xsd.exe 도구는 파일을 XSD 형식으로 변환합니다. C # 코드의 직렬화 중에 클래스는 xsd.exe에 의해 XSD 호환 형식으로 변환됩니다.
C #은 날마다 급속도로 발전하고 있으며 소프트웨어 테스팅 산업에서 중요한 역할을합니다.
이 기사를 통해 인터뷰 준비가 훨씬 쉬워지고 대부분의 C # 주제를 다루는 데 상당한 시간을 할애 할 것으로 확신합니다.
C # 인터뷰에 자신있게 응할 준비가 되셨기를 바랍니다 !!
C# 메소드,오버로딩 (0) | 2018.12.10 |
---|---|
C#기술면접 객체지향프로그래밍? (0) | 2018.12.10 |
주인공을 따라다니는 카메라 만들기 following camera (0) | 2018.12.10 |
TouchPad.cs (0) | 2018.12.10 |
예제로 배우는 C# (0) | 2018.12.07 |
C#기술면접 객체지향프로그래밍? (0) | 2018.12.10 |
---|---|
C# 해외 면접시 TOP50 (0) | 2018.12.10 |
TouchPad.cs (0) | 2018.12.10 |
예제로 배우는 C# (0) | 2018.12.07 |
unity player movement.cs 플레이어 움직임 /유니티 (0) | 2018.12.07 |