有时我们需要判断某个类是否实现了某个接口(Interface),比如在使用反射机制(Reflection)来查找特定类型的时候。简单来说,可以使用Type.IsAssignableFrom方法:typeof(IFoo).IsAssignableFrom(bar.GetType());
typeof(IFoo).IsAssignableFrom(typeof(BarClass));从字面意思可以看出,IsAssignableFrom表示BarClass类型能否赋值给IFoo接口,所以它返回true的条件就是BarClass直接或间接实现了IFoo接口。Type类型中还有一个方法...
单链表类using System;
using System.Collections.Generic;
using System.Reflection.Metadata;
using System.Text;namespace 单链表
{publicclass Node<T>{public T Data { get; set; }public Node<T> Next { get; set; } publicint Last { get; set; } //最后节点的位置///<summary>/// 1.构造函数进行初始化///</summary>///<param name="L"></param>public Node(){this.Data = default(T);this.Next = null;this.Last = 0;}///...
C#圆角窗体简单实现方法。分享给大家供大家参考。具体如下:?123456789101112131415161718192021publicpartialclassForm1 : Form{ publicForm1() { InitializeComponent(); } privatevoidForm1_Resize(objectsender, EventArgs e) { Type(this, 25, 0.1); } privatevoidType(Control sender, intp_1, doublep_2) { GraphicsPath oPath = newGraphicsPath(); oPath.AddClosedCurve(newPoint[] { newPoint(0, sender...
1、软件自启动原理 软件自启动的原理要从Windows的注册表聊起,在Windows操作系统下,主要有2个文件夹和8个注册表键项控制程序的自启动,这部分的详细介绍可以参看博客http://www.cnblogs.com/fukajg/archive/2012/08/10/2631250.html。本程序通过“Run”键值实现,Run键值是自启动程序最常见的地方。它的位置在[HKEY_CURRENT_USER\Softvvare\Microsoft\Windows\CurrentVersion\Run]和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\W...
写了很多年的AS3,最近接触U3D感觉事件机制没AS3的爽。咬紧牙关一鼓作气 基于C# 的委托实现了一版。废话不多说上干货。EventDispatcher代码如下:using UnityEngine;using System.Collections;using System;using System.Collections.Generic;/** * EventDispatcher 类是可调度事件的所有类的基类 * @author 回眸笑苍生**/public abstract class EventDispatcher : MonoBehaviour { //定义委托 public delegate void EventDelegate...
原创性声明本文作者:小竹zz 本文地址http://blog.csdn.net/zhujunxxxxx/article/details/44258719 转载请注明出处本文介绍在上一篇博客中我说了,我将会介绍c#中使用Socket和TcpListener和UdpClient实现各种同步和异步的TCP和UDP服务器,这些都是是我自己花了很多天的时间来总结的,这样一来相信刚接触c#网络编程的朋友们不会像以前的我一样到处出找资料,到处调试。本次我介绍的是使用Socket来实现的同步的TCP服务器,同步的TCP服...
由于课程设计选的题目是基于神经网络的综合评价,利用暑假时间用C#实现的bp神经网络。其中用到的_Matrix类是C#实现的矩阵类http://blog.csdn.net/lanqiuchaoren/article/details/37738665。此bp神经网络包含1个隐藏层,其中输入层,隐藏层,输出层个数都可以根据需要更改。具体bp神经网络代码如下BP类:using Matrix_Mul;
using Excel = Microsoft.Office.Interop.Excel;
using System;
using System.Collections.Generic;
using S...
C#中有很多易混淆的关键词,例如delegate,Func, Action和 Predicate。Func, Action和 Predicate本质上都是delegate,下面看一下delegate概念。1 delegate概念 delegate本质上就是一个指向函数的指针,可以指向不同的函数,只要函数的签名和代理一致即可。2 delegate应用 其实Func, Action, Predicate等都是delegate,只是特殊的delegate而已。delegate的巧妙应用,可以大大简化代码和提高灵活性。下面有一段Javascript代码,...
C#高性能Socket服务器的实现(IOCP)https://www.jianshu.com/p/c65c0eb59f22引言我一直在探寻一个高性能的Socket客户端代码。以前,我使用Socket类写了一些基于传统异步编程模型的代码(BeginSend、BeginReceive,等等)也看过很多博客的知识,在linux中有poll和epoll来实现,在windows下面微软MSDN中也提供了SocketAsyncEventArgs这个类来实现IOCP 地址:https://msdn.microsoft.com/zh-cn/library/system.net.sockets.socketasynce...
把php preg_replace 用c# 重写了一下。 PHP语言的功能非常强大,主要就是靠它强大的函数来作支撑。我们在这篇文章中将会为大家详细讲解有关PHP函数preg_replace()的相关使用方法。 PHP函数preg_replace()原型:mixed preg_replace (mixed $pattern, mixed $replacement, mixed $subject [, int $limit]) PHP函数preg_replace()较c的功能更加强大。其前三个参数均可以使用数组;第四个参数$limit可以设置替换的次数,默认为全部替换...
1、TCP/IP层次模型当然这里我们只讨论重要的四层01,应用层(Application):应用层是个很广泛的概念,有一些基本相同的系统级TCP/IP应用以及应用协议,也有许多的企业应用和互联网应用。http协议在应用层运行。02,传输层(Tanspot):传输层包括UDP和TCP,UDP几乎不对报文进行检查,而TCP提供传输保证。03,网络层(Netwok):网络层协议由一系列协议组成,包括ICMP、IGMP、RIP、OSPF、IP(v4,v6)等。04,链路层(Link):又称为物理数据网络...
最近一直在忙着单位核心开发组件的版本更新,前天加了一个通宵,昨天晚上却睡不着,脑子里面突然不知怎的一直在想贪吃蛇的实现方法。以往也有类似的情况,白天一直想不通的问题,晚上做梦有时会想到更好的版本,于是抽出时间按照梦里想到的方法测试编写一下,没想到从打开VisualStudio到完成初稿测试,只用了4个小时。不敢独享,又加上好久没有写文章了,于是将我的是实现方法写出来供大家一起讨论,高手也请多多指教。完成实现截图...
利用回车键将输入光标切换到下一个输入框以及系统快捷键Ctrl+C、V、X的屏蔽private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
if ( e.KeyValue == (char)Keys.Enter )
{
SendKeys.Send("{TAB}");//将回车键转换为Tab键 也可以让下一个文本输入框获得焦点(txt.Focus())来实现
}
if ( e.Control && e.KeyValue == (char)Keys.V )
{
e.Handle...
暂停与继续实现,可以使用Thread.Suspend和Thread.Resume而这两个方法,在VS2010里提示已经过时,不建议使用,在网上查阅了一些资料,发现有个事件通知的方法很好,事件通知的大致原理是,线程在执行过程中暂停,等到其他线程通知时才继续执行下去,这样的确是可以起到暂停与继续的效果。但是,这种暂停是被动的,我需要的是主动暂停,即点下按钮,线程暂停,再点下按钮,线程继续执行。 最终,我想了一种比较另类的方法,...
会员管理系统全部源代码,VS2010开发,使用Ado.net实体框架EF,简化数据库访问层,并能方便的移植到其他数据库。利用数据绑定减少编码量,提高程序的可维护性和可读性。使用Winfoms方便快速界面开发和修改。简洁的界面设计,方便用户上手。详细的代码注释,帮助二次开发者快速读懂程序。提供带.net框架的Setup安装项目提供软件的序列号注册功能,基于公钥、私钥的非对称加密解密算法。提供数据自动备份功能1、会员管理(新增会员、...