C\#중 is,as,using 키워드 사용 설명

5086 단어 C#isasusing
문제 설명
C\#에서 is,as,using 키 워드 는 그 특징 과 사용 장면 을 가지 고 있 습 니 다.그 중에서 is 키 워드 는 이 대상 이 주어진 유형 과 호 환 되 는 지 확인 하 는 데 사 용 됩 니 다.as 키 워드 는 대상 을 지정 한 유형 으로 전환 하 는 데 사 용 됩 니 다.using 키 워드 는 네 임 스페이스 를 도입 하 는 것 외 에 도 이미지 자원,예 를 들 어 파일 자원,네트워크 자원 과 데이터 베이스 자원 등 을 회수 합 니 다.
1.is:대상 이 주어진 형식 과 호 환 되 는 지 확인 하 는 데 사 용 됩 니 다.호 환 되면 true 로 돌아 갑 니 다.그렇지 않 으 면 false 로 돌아 가 이상 을 던 지지 않 습 니 다.유형 전환 을 하기 전에 대상 이 주어진 유형 과 호 환 되 는 지 is 로 판단 하고 호 환 되면 전환 할 수 있 습 니 다.
사례:

string str ="test"; 
object obj = str;
if(obj is string) {string str2 = (string)obj};
2.as:참조 형식 간 전환 에 사용 되 며,직접 변환 에 성공 하면 변환 후의 대상 을 되 돌려 줍 니 다.변환 에 실패 하면 null 로 돌아 가 이상 을 던 지지 않 습 니 다.
사례:

string str ="test"; 
object obj = str;
string str2 = obj as tring;
if(str2 !=null) {    }
3.using:네 임 스페이스 를 참조 하여 자원 을 효과적으로 회수 합 니 다.using 키 워드 는 여러 대상 의 자원 을 회수 할 수 있 습 니 다.키워드 뒤의 작은 괄호 안에 만 든 대상 은 반드시 IDisposable 인 터 페 이 스 를 실현 해 야 하거나 이러한 기본 클래스 는 IDisposable 인 터 페 이 스 를 실현 해 야 합 니 다.자원 을 회수 하 는 시 기 는 using 키워드 아래 코드 블록 이 실 행 된 후 인터페이스 방법 Dispose()를 자동 으로 호출 하여 대상 을 소각 하 는 것 입 니 다.
사례:

using (Test test =new Test()) {     ;}
 calss Test :IDisposable {
   public void Dispose() {    ;}
 }
코드 사례

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
 
namespace test1
{
 public partial class Form9 : Form
 {
  public Form9()
  {
   InitializeComponent();
  }
 
  private void button1_Click(object sender, EventArgs e)
  {
   //  object
   if (obj_rdb.Checked)
   {
    //  using   ,                
    //  FileStream     IDisposable  ,      
    using (FileStream fileStream = new FileStream(@"d:\test.txt", System.IO.FileMode.Create))
    {
     object obj = fileStream as object; //    as  
     if (obj != null)
     {
      MessageBox.Show("FileStream   object  ", "    ");
     }
     else
     {
      MessageBox.Show("FileStream   object  ", "    ");
     }
    }
   }
   else
   {
    using (FileStream fileStream = new FileStream(@"d:\test.txt", System.IO.FileMode.Create))
    {
      //      
     try
     {
      Stream stream = (Stream)fileStream;
      MessageBox.Show("FileStream   Stream  ", "    ");
     }catch(Exception ex)
     {
      MessageBox.Show(ex.Message, "    ");
     }
     
    }
   }
   
  }
 }
}
3.결과 표시


보충 지식:c\#Constructor 구조 함수 주입
1.인터페이스 만 들 기

 public interface ITimeProvider
  {
    DateTime CurrentDate { get; }
    string CurrentYear { get; }
  }
2.계승 인터페이스,구현 클래스

 public class TimeProvider : ITimeProvider
  {
    public DateTime CurrentDate { get { return DateTime.Now; } }
    public string CurrentYear { get { return DateTime.Now.Year.ToString(); } }
  }
3.주입 메커니즘 만 들 기

 public class Assembler
  {
    private static Dictionary<Type, Type> dictionary = new Dictionary<Type, Type>();
    public Assembler()
    {
      dictionary.Add(typeof(ITimeProvider), typeof(TimeProvider));
    }
    public object Create(Type type)
    {
      if (type == null || !dictionary.ContainsKey(type)) throw new NullReferenceException();
      Type targetType = dictionary[type];
      return Activator.CreateInstance(targetType);
    }
 
    public T Create<T>()
    {
      return (T)Create(typeof(T));
    }
  }
4.클 라 이언 트 호출

 public class Client
  {
    private ITimeProvider timeProvider;
    public Client(ITimeProvider timeProvider)
    {
      this.timeProvider = timeProvider;
    }
    public string GetYear()
    {
      return timeProvider.CurrentYear .ToString();
    }
    public string GetDatetime()
    {
      return timeProvider.CurrentDate.ToString();
    }
  }
5.사용 실현

   ITimeProvider timeProvider = (new Assembler()).Create<ITimeProvider>();
      Client clinet = new Client(timeProvider);
      Console.WriteLine(clinet.GetYear());
      Console.WriteLine(clinet.GetDatetime());
이상 의 이 C\#중 is,as,using 키워드 의 사용 설명 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 에 게 참고 가 되 었 으 면 좋 겠 습 니 다.여러분 들 도 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기