C\#에서 this 의 용법 모음 집
우선,우 리 는 각각 User 와 VIP 두 개의 C\#클래스 를 만 듭 니 다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AppConsole
{
/// <summary>
///
/// </summary>
public class User
{
/// <summary>
///
/// </summary>
Dictionary<string, object> dictInfo = null;
/// <summary>
///
/// </summary>
public User()
{
dictInfo = new Dictionary<string, object>();
}
/// <summary>
///
/// </summary>
/// <param name="UserID"></param>
/// <param name="UserName"></param>
public User(int UserID, string UserName)
{
this.UserName = UserName;
this.ID = UserID;
}
/// <summary>
/// this, 【1】 ,
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public object this[string name]
{
get { return dictInfo[name]; }
set { dictInfo[name] = value; }
}
/// <summary>
///
/// </summary>
public int ID { get; set; }
/// <summary>
///
/// </summary>
public string UserName { get; set; }
/// <summary>
/// this 【2】 ,
/// </summary>
public void Said()
{
new VIP().Say(this);
}
}
/// <summary>
///
/// </summary>
public class VIP : User
{
/// <summary>
///
/// </summary>
public int integral { get; set; }
/// <summary>
///
/// </summary>
public VIP()
{
ID = 520;
integral = 1000;
}
/// <summary>
/// this 【3】 , this()
/// </summary>
/// <param name="UserName"></param>
public VIP(string UserName)
: this()
{
this.UserName = UserName;
}
/// <summary>
///
/// </summary>
/// <param name="UserID"></param>
/// <param name="UserName"></param>
public VIP(int UserID, string UserName)
: base(UserID, UserName)
{
}
/// <summary>
///Say
/// </summary>
/// <param name="user"></param>
public void Say([LCQAttribute] User user)
{
Console.WriteLine(string.Format(" , ! {0}, {1}!", user.ID, user.UserName));
}
}
/// <summary>
/// , User
/// </summary>
public static class Helper
{
/// <summary>
/// 【4】 : this User
/// </summary>
/// <param name="user"></param>
public static void Sing(this User user)
{
Console.WriteLine(string.Format(" , ! {0}, {1}!", user.ID, user.UserName));
}
}
/// <summary>
/// :
/// </summary>
[System.AttributeUsage(AttributeTargets.Method | AttributeTargets.Parameter)]
public class LCQAttribute : System.Attribute
{
}
}
this 제[1]종 용법,색인 기
/// <summary>
///
/// </summary>
Dictionary<string, object> dictInfo = null;
/// <summary>
/// this, 【1】 ,
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public object this[string name]
{
get { return dictInfo[name]; }
set { dictInfo[name] = value; }
}
this 제[2]종 용법,매개 변수 로 전달
/// <summary>
/// this 【2】 ,
/// </summary>
public void Said()
{
new VIP().Say(this);
}
this 제[3]종 용법,this()를 통 해 무 참 구조 함 수 를 호출 합 니 다.
/// <summary>
/// this 【3】 , this()
/// </summary>
/// <param name="UserName"></param>
public VIP(string UserName)
: this()
{
this.UserName = UserName;
}
this 제[4]종 용법:확장 User 클래스
/// <summary>
/// , User
/// </summary>
public static class Helper
{
/// <summary>
/// 【4】 : this User
/// </summary>
/// <param name="user"></param>
public static void Sing(this User user)
{
Console.WriteLine(string.Format(" , ! {0}, {1}!", user.ID, user.UserName));
}
}
마지막 으로 콘 솔 테스트
/// <summary>
///
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
//0>
User user = new User();
user.ID = 1;
user.UserName = "lichaoqiang";
// 【 】 :this public object this[string name]{……}
user["UserID"] = 1;
Console.WriteLine(" 【 】 :this ");
// 【 】 :this user.Say(this);
Console.WriteLine(" 【 】 :this ");
user.Said();
// 【 】 :this() public VIP:this(){ }
VIP vip = new VIP("yezi");
vip.Said();
Console.WriteLine(" 【 】 :this()");
// 【 】 : this VIP public static Sing(this User user){……}
Console.WriteLine(" 【 】 : this VIP ");
user.Sing();
Console.Read();
}
최종 결과 설명도이상 에서 말 한 것 이 본문의 전부 이 니 여러분 들 이 좋아 하 시 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.