当前位置: 首页 > news >正文

C#基础概念

const和static readonly的区别

const:编译期初始化

static readonly: 运行期初始化

extern的用法

引进程序集外的函数

 注意DllImport是一个Attribute,在System.Runtime.InteropServices命名空间中定义

ContractedBlock.gif ExpandedBlockStart.gif Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace ConsoleApplication4
{

    
class Program
    {
        [DllImport(
"User32.dll")]
        
public static extern int MessageBox(int Handle, string Message, string Caption, int Type);
        
static int Main(string[] args)
        {
            
string myString;
            Console.WriteLine(
"enter your message:");
            myString 
= Console.ReadLine();
            
return MessageBox(0,myString,"mymessagebox",0);
        }
    }
}

abstract的用法

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

ContractedBlock.gif ExpandedBlockStart.gif Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace ConsoleApplication4
{
    
public abstract class BaseClass
    {
        
public abstract String Attribute
        {
            
get;
            
set;
        }
        
public abstract void Function();
        
public abstract event EventHandler Event;
        
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()
        {
            
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);
            tmpobj.Event 
+= OnFunction;
            tmpobj.Function();
        }
    }
}

 可以使用抽象函数重写基类中的虚函数吗?

ContractedBlock.gif ExpandedBlockStart.gif Code
    class BaseClass
    {
        
public virtual void F()
        {
            Console.WriteLine(
"BaseClass.f");
        }
    }
    
abstract class DeriveClass : BaseClass
    {
        
public new abstract void F();
    }

 

转载于:https://www.cnblogs.com/tangjian/archive/2009/03/29/1424442.html

相关文章:

  • Rational Rose2003安装方法
  • 服务器安装
  • 验证码代码
  • 非常全面和深入的PHP介绍
  • 网站建设-如何选择
  • 如何在WebService中获取客户端的IP地址
  • 聚集索引和非聚集索引的根本区别(转)----收集下
  • Asterisk的sip呼叫测试(转帖)
  • 网站收集
  • sql语句说明
  • [转]数据库操作,内外联查询,分组查询,嵌套查询,交叉查询,多表查询,语句小结。...
  • 照着这些做,生活自然很开心
  • 后缀表达式相关内容
  • 《论语》原文及其全文翻译 学而篇9
  • discuz 论坛的详细介绍(转载)
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 2017前端实习生面试总结
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • es的写入过程
  • github从入门到放弃(1)
  • js 实现textarea输入字数提示
  • JS专题之继承
  • Nacos系列:Nacos的Java SDK使用
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • Vue学习第二天
  • 程序员最讨厌的9句话,你可有补充?
  • 老板让我十分钟上手nx-admin
  • 配置 PM2 实现代码自动发布
  • 浅谈Golang中select的用法
  • 少走弯路,给Java 1~5 年程序员的建议
  • 数据科学 第 3 章 11 字符串处理
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 一、python与pycharm的安装
  • zabbix3.2监控linux磁盘IO
  • 阿里云重庆大学大数据训练营落地分享
  • #FPGA(基础知识)
  • #Java第九次作业--输入输出流和文件操作
  • #Linux(权限管理)
  • #微信小程序:微信小程序常见的配置传旨
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (二)hibernate配置管理
  • (二)构建dubbo分布式平台-平台功能导图
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (推荐)叮当——中文语音对话机器人
  • (一)u-boot-nand.bin的下载
  • (转)visual stdio 书签功能介绍