C#基础概念学习笔记

本文介绍C#基础概念学习笔记,包括extern 修饰符用于声明由程序集外部实现的成员函数、abstr
首页 新闻资讯 行业资讯 C#基础概念学习笔记

C#基础概念之extern 是什么意思?

extern 修饰符用于声明由程序集外部实现的成员函数,经常用于系统API函数的调用(通过 DllImport )。注意,和DllImport一起使用时要加上 static 修饰符,也可以用于对于同一程序集不同版本组件的调用(用 extern 声明别名),不能与 abstract 修饰符同时使用。

示例:

复制

using System;  using System.Collections.Generic;  using System.Text;  using System.Runtime.InteropServices;   namespace Example03 {   class Program {   //注意DllImport是一个Attribute Property,
在System.Runtime.InteropServices命名空间中定义  //extern与DllImport一起使用时必须再加上一个static修饰符[DllImport("User32.dll")]   public static extern int MessageBox
(int Handle, string Message, string Caption, int Type);   static int Main(){   string myString;  Console.Write("Enter your message: ");  myString = Console.ReadLine();  return MessageBox(0, myString, "My Message Box", 0);  } 
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

  • 9.

  • 10.

  • 11.

  • 12.

  • 13.

  • 14.

  • 15.

  • 16.

  • 17.

  • 18.

  • 19.

C#基础概念之abstract 是什么意思?

abstract 修饰符可以用于类、方法、属性、事件和索引指示器(indexer),表示其为抽象成员,abstract 不可以和 static 、virtual 、override 一起使用,声明为 abstract 成员可以不包括实现代码,但只有类中还有未实现的抽象成员,该类就不可以被实例化,通常用于强制继承类必须实现某一成员

示例:

复制

using System;  using System.Collections.Generic;  using System.Text;   namespace Example04 {    public abstract class BaseClass {   //抽象属性,同时具有get和set访问器表示继承类必须将该属性实现为可读写  public abstract String Attribute {   get;  set;  }   //抽象方法,传入一个字符串参数无返回值  public abstract void Function(String value);   //抽象事件,类型为系统预定义的代理(delegate):  EventHandler public abstract event EventHandler Event;   //抽象索引指示器,只具有get访问器表示继承类必须将该索引指示器实现为只读  public abstract Char this[int Index] {   get;  }    public class DeriveClass : BaseClass {   private String attribute;   public override String Attribute {   get {   return attribute;  }   set {   attribute = value;  }   public override void Function(String value){   attribute = value;  if (Event != null){   Event(this, new EventArgs());  }   public override event EventHandler Event;  public override Char this[int Index] {   get {   return attribute[Index];  }    class Program { static void OnFunction(object sender, EventArgs e){   for (int i = 0;   i < ((DeriveClass)sender)。Attribute.Length;   i++){ Console.WriteLine(((DeriveClass)sender)[i]);  }   static void Main(string[] args){   DeriveClass tmpObj = new DeriveClass();  tmpObj.Attribute = "1234567";Console.WriteLine(tmpObj.Attribute);  //将静态函数OnFunction与tmpObj对象的Event事件进行关联  tmpObj.Event += new EventHandler(OnFunction);  tmpObj.Function("7654321");  Console.ReadLine();  }
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

  • 9.

  • 10.

  • 11.

  • 12.

  • 13.

  • 14.

  • 15.

  • 16.

  • 17.

  • 18.

  • 19.

  • 20.

  • 21.

  • 22.

  • 23.

  • 24.

  • 25.

  • 26.

  • 27.

  • 28.

  • 29.

  • 30.

  • 31.

  • 32.

  • 33.

  • 34.

  • 35.

  • 36.

  • 37.

  • 38.

  • 39.

  • 40.

  • 41.

  • 42.

  • 43.

  • 44.

  • 45.

  • 46.

  • 47.

  • 48.

  • 49.

  • 50.

  • 51.

  • 52.

  • 53.

  • 54.

  • 55.

  • 56.

  • 57.

  • 58.

C#基础概念之internal 修饰符起什么作用?

internal 修饰符可以用于类型或成员,使用该修饰符声明的类型或成员只能在同一程集内访问,接口的成员不能使用 internal 修饰符

示例:

复制

using System;  using System.Collections.Generic;  using System.Text;   namespace Example05Lib {   public class Class1 {   internal String strInternal = null;  public String strPublic;  }
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

  • 9.

【编辑推荐】

  1. C#反射方法学习总结

  2. 浅谈C#测量cpu性能

  3. C#远程计算机的一些理论知识

  4. 浅析C# Static修饰

  5. C#转换农历的简单方法

16    2009-08-13 11:10:32    C#基础概念