제네릭을 사용하면 프로그램에서 실제로 사용될 때까지 클래스나 메서드 내 프로그래밍 요소의 데이터 유형 사양 작성을 연기할 수 있습니다. 즉, 클래스나 메소드를 선언할 때 사용자가 전달하려는 매개변수의 유형이 무엇인지 모르기 때문에 해당 유형이 전달되는 곳에 "구멍("")을 파냅니다. 이를 사용하여 특정 데이터 유형으로 채웁니다.
일반 클래스:
앞서 배운 지식을 바탕으로 클래스를 정의합니다.
class Data { public int n_data; }
이때 n_data의 데이터 유형은 int 유형으로 결정되었으므로 값을 할당할 때 int 유형만 가능합니다. 다음 일반 클래스로 다시 작성하면:
class Data<T> { public T n_data; }
, n_data의 데이터 유형은 아직 어떤 유형인지 확실하지 않으므로 값을 할당할 때 n_data의 유형인 T를 지정해야 합니다. 즉, 피트를 채우려면
Data<int> data = new Data<int>(); //指定T为int Data<string> data = new Data<string>(); //指定T为string
물론 위의 예에서는 T를 배열로 지정할 수 없습니다. 원하는 경우 n_data의 유형이 배열인 경우 다음 예를 충족할 수 있습니다.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Example { class Data<T> //泛型类 { public T[] n_data; //泛型变量 public Data(int size) //构造方法,new的时候调用构造方法开辟空间 { n_data = new T[size]; } //输入 public void setdata(int index,T value) { n_data[index] = value; } //输出 public T getdata(int x) { return n_data[x]; } } class Program { static void Main(string[] args) { Data<int> data = new Data<int>(5); data.n_data[2] = 2; Console.WriteLine(data.n_data[2]); } } }
결과는 다음과 같습니다. 2
일반 방법:
스왑 교환 방법을 예로 들어 보겠습니다. C++의 스왑 함수는 다음과 같이 작성됩니다.
#include <iostream> using namespace std; template <typename T> void swap1(T &a,T &b) //也可以看作泛型 { T temp; temp = a; a = b; b = temp; } int main() { int a=0,b=1; swap1(a,b); cout<<a<<"\t"<<b<<endl; return 0; }
결과: 1 0
a, b가 문자형인 경우 위의 기능도 적용 가능합니다. C#swap 방법은 다음과 같습니다:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Example { class data {//swap方法,ref是按地址传递 public static void swap<T>(ref T a, ref T b) { T temp; temp = a; a = b; b = temp; } static void Main(string[] args) { string a = "HC"; string b = "666"; swap(ref a,ref b); Console.WriteLine(a+"\t"+b); //结果 666 HC } } }
결과: 666 HC C+++
일반 대리자:
와 매우 유사합니다. 일반 대리자도 입력하고 위의 예를 계속 진행합니다:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Example { public delegate void MyDelegate<T>();//泛型委托 class Data<T> { private T a; private T b; public void setvalue(T x, T y) { a = x; b = y; } //swap方法,ref是按地址传递 public void swap() { T temp; temp = a; a = b; b = temp; } public void printvalue() { Console.WriteLine(a + "\t" + b); } } class program { static void Main(string[] args) { Data<string> data = new Data<string>(); data.setvalue("HC","666"); MyDelegate<string> my = new MyDelegate<string>(data.swap); my += data.printvalue; my(); //结果 666 HC } } }
결과:
방금 제네릭에 대해 많은 것을 소개했습니다. 실수요? 환영합니다 ^_^
위 내용은 C# 학습일지 30---제네릭 클래스, 제네릭 메소드, 제네릭 델리게이트의 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 참고해주세요. (www.php.cn)!

C#.NET의 미래 트렌드는 주로 클라우드 컴퓨팅, 마이크로 서비스, AI 및 기계 학습 통합, 크로스 플랫폼 개발의 세 가지 측면에 중점을 둡니다. 1) 클라우드 컴퓨팅 및 마이크로 서비스 : C#.net은 Azure 플랫폼을 통해 클라우드 환경 성능을 최적화하고 효율적인 마이크로 서비스 아키텍처의 구성을 지원합니다. 2) AI 및 기계 학습의 통합 : ML.NET 라이브러리의 도움으로 C# 개발자는 기계 학습 모델을 응용 프로그램에 포함시켜 지능형 애플리케이션의 개발을 촉진 할 수 있습니다. 3) 크로스 플랫폼 개발 : .NETCORE 및 .NET5를 통해 C# 응용 프로그램은 Windows, Linux 및 MacOS에서 실행되어 배포 범위를 확장 할 수 있습니다.

C#.NET 개발의 최신 개발 및 모범 사례에는 다음이 포함됩니다. 1. 비동기 프로그래밍은 응용 프로그램 응답 성을 향상시키고 Async 및 Await 키워드를 사용하여 비 차단 코드를 단순화합니다. 2. LINQ는 지연된 실행 및 표현 트리를 통해 데이터를 효율적으로 조작하는 강력한 쿼리 기능을 제공합니다. 3. 성능 최적화 제안에는 비동기 프로그래밍 사용, LINQ 쿼리 최적화, 합리적으로 메모리 관리, 코드 가독성 및 유지 보수 개선 및 단위 테스트 작성이 포함됩니다.

.NET을 사용하여 응용 프로그램을 구축하는 방법? .NET을 사용하여 응용 프로그램 빌드 응용 프로그램은 다음 단계를 통해 달성 할 수 있습니다. 1) C# 언어 및 크로스 플랫폼 개발 지원을 포함한 .NET의 기본 사항을 이해합니다. 2) .NET 생태계의 구성 요소 및 작동 원리와 같은 핵심 개념을 배우십시오. 3) 간단한 콘솔 애플리케이션에서 복잡한 WebApis 및 데이터베이스 운영에 이르기까지 기본 및 고급 사용을 마스터합니다. 4) 구성 및 데이터베이스 연결 문제와 같은 일반적인 오류 및 디버깅 기술에 익숙해야합니다. 5) 응용 프로그램 성능 최적화 및 비동기 프로그래밍 및 캐싱과 같은 모범 사례.

C#은 엔터프라이즈 레벨 애플리케이션, 게임 개발, 모바일 응용 프로그램 및 웹 개발에서 널리 사용됩니다. 1) 엔터프라이즈 레벨 애플리케이션에서 C#은 종종 asp.netcore가 webapi를 개발하는 데 사용됩니다. 2) 게임 개발에서 C#은 Unity 엔진과 결합되어 역할 제어 및 기타 기능을 실현합니다. 3) C#은 코드 유연성 및 응용 프로그램 성능을 향상시키기 위해 다형성 및 비동기 프로그래밍을 지원합니다.

C# 및 .NET은 웹, 데스크탑 및 모바일 개발에 적합합니다. 1) 웹 개발에서 ASP.NETCORE는 크로스 플랫폼 개발을 지원합니다. 2) 데스크탑 개발은 WPF 및 Winforms를 사용하여 다양한 요구에 적합합니다. 3) 모바일 개발은 Xamarin을 통한 크로스 플랫폼 응용 프로그램을 실현합니다.

C#.NET 생태계는 개발자가 응용 프로그램을 효율적으로 구축 할 수 있도록 풍부한 프레임 워크 및 라이브러리를 제공합니다. 1.asp.netCore는 고성능 웹 애플리케이션을 구축하는 데 사용되며 2.entityFrameworkCore는 데이터베이스 작업에 사용됩니다. 이러한 도구의 사용 및 모범 사례를 이해함으로써 개발자는 응용 프로그램의 품질과 성능을 향상시킬 수 있습니다.

C# .NET 앱을 Azure 또는 AWS에 배포하는 방법은 무엇입니까? 답은 Azureappservice와 Awelasticbeanstalk를 사용하는 것입니다. 1. Azure에서 Azureappservice 및 AzurePipelines를 사용하여 배포를 자동화하십시오. 2. AWS에서 Amazon Elasticbeanstalk 및 Awslambda를 사용하여 배포 및 서버리스 컴퓨팅을 구현하십시오.

C#과 .NET의 조합은 개발자에게 강력한 프로그래밍 환경을 제공합니다. 1) C#은 다형성 및 비동기 프로그래밍을 지원합니다. 2) .net은 크로스 플랫폼 기능과 동시 처리 메커니즘을 제공하여 데스크탑, 웹 및 모바일 애플리케이션 개발에 널리 사용됩니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

Dreamweaver Mac版
시각적 웹 개발 도구

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
