自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

转载 C#如何理解继承

算是比较能够解惑的回答!要能够强化一下对面向对象的理解(1)继承是在一些比较一般的类的基础上构造、建立和扩充新类的最有效的手段。(2)继承简化了人们对事物的认识和描述,能清晰体现相关类间的层次结构关系。(3)继承提供了软件复用功能。若类B继承类A,那么建立类B时只需要再描述与基类(类A)不同的少量特征(数据成员和成员方法)即可。这种做法能减小代码和数据的冗余度,大大增加程序的重用性。(4...

2019-05-19 17:44:30 351

转载 C#访问修饰符

①private,私有访问修饰符,被private访问修饰符修饰的成员只有在当前类的内部可以访问,其他地方一律不得访问。类中成员不用修饰符,默认为private。②protected,表示当前类内部可以访问,并且所有的子类内部也可以访问。③internal,当前程序集内部。类的默认访问修饰符是internal。注:protected和internal访问修饰符无所谓哪个更“可访问”,因...

2019-05-19 17:30:47 296

转载 Abstract和Virtual区别

解读一c# 中 Abstract和Virtual比较容易混淆,都与继承有关,并且涉及override的使用。下面讨论一下二者的区别:一、Virtual方法(虚方法)virtual 关键字用于在基类中修饰方法。virtual的使用会有两种情况:情况1:在基类中定义了virtual方法,但在派生类中没有重写该虚方法。那么在对派生类实例的调用中,该虚方法使用的是基类定义的方法。情况2:在基类中...

2019-05-08 22:57:51 2267 1

转载 C#.NET里面抽象类和接口有什么区别?

声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,...

2019-02-27 21:55:38 414

原创 C#之out和ref的用法区别&&NX获取面法相及中心点

懒得打字了,摘一段总结,但是我也是这么用和想的。“ref和out的区别在C# 中,既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值,并保持该更改。若要通过引用传递参数, 可使用ref或out关键字。ref和out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。它们的区别是:1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方...

2018-11-27 20:14:30 663

转载 C#调用C/C++dll的方法(近期研究的课题)

转载自https://www.cnblogs.com/bizca/p/4962559.html   bizca大神的博客NX Open,怎样取到面的环LOOP 在封装的ufun .NET库里面,对UF_MODL_ask_face_loops这个函数并没有封装,导致我们很多不便,那我们在.NET下怎样才能使用这个函数呢??当然是手动处理一下using System;using Sys...

2018-10-25 00:04:27 637 5

原创 UFUN发射线函数UF_MODL_trace_a_ray的用法(转,原文为C++,现在版本为C#)

本片源码例子非本人所创,不过是转换了开发语言版本,此例非常具有学习效果,原文请查看https://blog.csdn.net/lu1287580078/article/details/82916477?from=timeline    Caesar卢尚宇CSDNclass FD_CreateTrace    {        private NXOpen.Session theSess...

2018-10-23 22:57:25 1002 1

转载 反射机制

-----------------原文如下--------1、 什么是反射2、 命名空间与装配件的关系3、 运行期得到类型信息有什么用4、 如何使用反射获取类型5、 如何根据类型来动态创建对象6、 如何获取方法以及动态调用方法7、 动态创建委托1、什么是反射        Reflection,中文翻译为反射。        这是.Net中获取运行时类型信息的方式,.Net的...

2018-10-20 16:26:05 138

转载 C#中怎么调用WinAPI函数(转载)

在C#中经常需要调用一些API函数,那么怎样才能正确的调用API函数呢,如下: 一、调用API格式 //引用此名称空间,简化后面的代码usingSystem.Runtime.InteropServices;... //使用DllImportAttribute特性来引入api函数,注意声明的是空方法,即方法体为空。[DllImport("user32.dll")]...

2018-10-15 23:18:27 1613

原创 C#编写高质量代码第八天

Linq的三个用法针对LINQ设计的扩展方法大多应用了泛型委托,system命名空间定义了泛型委托Action、Func和Predicate,可以这样理解这三个委托,Action用于执行一个操作,所以它没有返回值,Func用于执行一个操作并返回值,Predicate用于定义一组条件并判断是否符合条件。select扩展方法接收的就是有个Func委托,Lambda表达式其实就是一个简洁的委托,运算...

2018-09-06 00:11:06 171

原创 C#编写高质量代码第七天

阶段总结:第一阶段的学习已经完成,主要的内容再做个小的总结第一天:1、主要是从类型上来概述装箱和拆箱的概念(值类型到引用类型是装箱,反正拆箱(我要再记一遍))。2、隐式类型转换和显示类型转换,对于有继承关系的,子类到基类的转换是隐式类型转换,反之是显示类型转换,建议使用As3、如果不存在继承关系的也可以通过重载类型operator的方式(explicit显示转换,implici...

2018-08-19 00:11:05 164

原创 C#编写高质量代码第六天

总结: 1、如果没有为类型重写Tostring方法,会使用Object的Tostring返回当前类型的名称 2、继承Ifomattable接口可以实现可格式化的ToString ,就是多一个判读条件,然后在内部通过Switch case进行判读 深拷贝和签拷贝的实现方法如下,深拷贝可以通过序列化和反序列的方式最终获得与之前不相干的的对象  using System...

2018-08-15 23:44:26 198

原创 C#编写高质量代码第五天

总结:1、对于引用类型,我们要定义“值相等性”,应该仅仅去重载equals2、根据目前的了解RfrenceEquals只使用于直接比较字符串(那为啥我不直接用==来比较字符串呢?),不适合类和int类型3、重写Equals方法的同时,也应该实现一个类型的接口IEquatable<T>using System;using System.Collections.Generic...

2018-08-14 00:07:58 183

原创 C#编写高质量代码第四天

总结:重载类能够实现没有继承关系直接的类与类之间的转换,重载运算符能够实现类与类的运算符运算,能够自定义预算符实际的要求,同时也比较直观。 重写Icomparable<T>和Icompare<T> 前者实现与当前类中参数的比较器,后者则是实现非默认比较器,是实现外部类之间的比较(集合中会自动获取当前中所有的类进行自动比较和排序)。实现方式是List<>集合...

2018-08-09 00:40:42 233

原创 C#编写高质量代码第三天

总结:const 天然是static修饰,readonly修饰的值类型和引用类型都不可以再重新赋值,但是对于引用类型指向的实例对象可以再次赋值。 不要显示赋值给枚举对象,枚举对象默认0为初始值,保持默认就可以,因为如果需要增加枚举值时如果已经显示的复制会发生错误 枚举的使用:通过值获取枚举类型(枚举)int 强转 ,反之要等到枚举类型值(int)枚举对象   using System...

2018-08-08 00:23:41 195

原创 C#编写高质量代码第二天

总结:使用tryParse比Parse要好,并且编写方法时可以使用TryDo模式,已提供程序运行效率 as和强制类型转换的区别,建议使用As方式,非继承关系无法使用As ,引出implictic和explic重载类的区别 int?可空类型,??判断左侧值是否为null,是传入右侧值,不是null传入左侧值 using System;using System.Collections.G...

2018-08-07 00:08:08 257

原创 C#编写高质量代码第一天

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace PromoteDay01{    class Program    {        static void Main(string[]...

2018-08-03 22:12:35 291

转载 为什么需要使用泛型类<T>

 使用泛型行的最大好处就是代码重用,合理的使用泛型可以大大的解决我们编写代码的数量,同时也可以提高我们的程序性能下面我通过一个简单的例子讲解   现在我们需要一个处理两个数据类型,int 类型和String的数据,他们都需要用到栈的操作,当我没没有泛型的时候需要写出两个栈的数据结构  2.1 处理int类型public class Stack { ...

2018-07-29 00:40:12 755

转载 XML序列化和反序列化

阅读目录开始 最简单的使用XML的方法 类型定义与XML结构的映射 使用 XmlElement 使用 XmlAttribute 使用 InnerText 重命名节点名称 列表和数组的序列化 列表和数组的做为数据成员的序列化 类型继承与反序列化 反序列化的实战演练 反序列化的使用总结 排除不需要序列化的成员 强制指定成员的序列化顺序 自定义序列化行为 序列化去掉XM...

2018-07-16 23:42:39 2847

原创 C#近期学习

1、特性具有以下属性:特性向程序添加元数据。 元数据是程序中定义的类型的相关信息。 所有 .NET 程序集都包含一组指定的元数据,用于描述程序集中定义的类型和类型成员。 可以添加自定义特性来指定所需的其他任何信息。 有关详细信息,请参阅创建自定义特性 (C#)。 可以将一个或多个特性应用于整个程序集、模块或较小的程序元素(如类和属性)。 特性可以像方法和属性一样接受自变量。 程序可使用反...

2018-06-20 23:43:52 216

转载 C# 运算符 ?、??、?: 各种问号的用法和说明

1、可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空,例如:string str=null;是正确的。int i=null;编译器将报错。为了使值类型也可为空,可空类型出现了,可空类型使用可空类型修饰符?来表示,表现形式为T?。例:int?表示是可空的整形,DateTime?表示为可空的时间。T?其实是System.Nullable<T>(泛型结...

2018-03-23 17:17:35 9344

原创 C#继承List集合

个人感悟:1、继承list集合完美解决了类似键值对之间通过一个参数去查找多个参数的情况,可以通过下表去查找其他数据内容2、继承list集合能够使用list的特性方法,例如可以添加对象,继承之后本身已经就是一个泛型集合...

2018-03-23 09:29:03 2502

原创 C# 访问修饰符不一致问题

1、类与类之间的继承 访问修饰符要一致2、方法的访问修饰符需要和方法的参数或者方法的返回值的访问修饰符一致(如果类的访问修饰符也一致,同样没问题) class Animal { public string Name { get; set; } } public class Finsh { public void Sa...

2018-02-28 23:33:51 243

原创 C# 访问修饰符(五种)

private 在当前类中使用protected 在当前类和所有继承的子类中使用internal 在当前程序集中的使用protected internal  同时具备protected和internal的访问权限public 公开的访问权限1、类中的成员不写访问修饰符默认为private2、类不写访问修饰符默认为internal3、直接定义在命名空间中的类型访问修饰符只...

2018-02-27 22:01:18 428

原创 C# this、base的两种用法

一、代表当前类的实例对象二、调用当前类的构造函数三、base用法 namespace ConsoleApplication1{ class this用法 { person p1 = new person("张三", 20); } class person { public string...

2018-02-26 18:01:56 334

原创 C#正则表达式

限定符. 表示除了\n以外的任意字符  a.b* 表示限定前面的表达式出现0次或者多次 a.*b+ 表示一次或者多次,至少出现一次 a.+b? 表示可以出现0次或者1次 a.+b[0-9]{8}  限定固定次数,0到9 之间的任意数出现8次  [0-9]{4, }四次以上  [0-9]{4, 9}四次到九次之间[] 表示罗列出所有单个字符,只能出现一次a[a-z]b| ...

2018-01-08 23:04:35 212

原创 C# 扩展方法在NXOPEN中的应用(2)

举例:如果需要对NXopen中的Vector3D进行扩展一个反向的方法NagatedVectornamespace NXOpen   //可以使用该命名空间{public static class Vector_eric //静态类{/// &lt;summary&gt;        /// 反向矢量        /// &lt;/summary&gt;      ...

2017-12-30 12:09:38 1092

转载 C#扩展方法(1)

C#扩展方法的理解“扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。”这是msdn上说的,也就是你可以对String,Int,DataRow,DataTable等这些类型的基础上增加一个或多个方法,使用时不需要去修改或编译类型本身的代码。先做个例子吧,以String为例,需要在字符串类型中加一个从字符串转为数值的功能。以往我们可能是...

2017-12-30 12:00:47 215

原创 NX选择对象设置过滤

用选择对象Selection在有特殊选择要求的情况下需要设置选择过滤。需要设置两个变量1.NXOpen.Selection.SelectionAction maskAction = NXOpen.Selection.SelectionAction.ClearAndEnableSpecific;(指示选择对象时要执行的操作的类型) 2.设置选择的具体类型过滤NXOpen.Sele...

2017-12-24 22:45:12 3385

转载 C#多态之接口

继承"基类"跟继承"接口"都能实现某些相同的功能,但有些接口能够完成的功能是只用基类无法实现的1.接口用于描述一组类的公共方法/公共属性. 它不实现任何的方法或属性,只是告诉继承它的类至少要实现哪些功能,继承它的类可以增加自己的方法.2.使用接口可以使继承它的类: 命名统一/规范,易于维护.比如: 两个类 "狗"和"猫",如果它们都继承了接口"动物",其中动物里面有个方法Behavior(...

2017-12-18 13:42:13 292

原创 多态之虚方法

1.虚方法用到两个关键字virtual 和 override  当子类继承与父类对象时,声明一个父类对象,通过在子类中重写父类对象的方法,可以直接调到子类的方法   public class Person    {        private string _name;        public string Name        {            get...

2017-12-17 15:55:02 327

转载 程序集、命名空间和类

作者:ahdung链接:https://www.zhihu.com/question/263468057/answer/269458014来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。你还漏了一个:【程序集】。我先说包含关系吧:程序集|命名空间【包含】类|结构体|接口|枚举|委托。由于类、结构体这些东西在说明这种问题时并没有区别,所以下文可能只拿类...

2017-12-14 11:40:41 732

转载 经常容易忘记篇

 一、访问修饰符汇总1)public  所属类的成员以及非所属类的成员都可以访问  2)internal  当前程序集可以访问 (可以单纯的指该项目下)一般修饰类、变量、方法和属性 ,其他项目将无法引用程序集(通俗):一个解决方案,里面可以包括多个程序集,程序集简单一点理解就是程序的集合,里面可以包括很多类比如,你写了一个记录日志的DLL,任何项目只要引用此DLL就能实现...

2017-11-30 10:02:22 238

转载 通过“选择对象控件”设置选择过滤器

private void UpdateEnum()    {        string enumAsString = this.centerLineType0.GetProperties().GetEnumAsString("Value");        Selection.MaskTriple maskTriple = default(Selection.MaskTriple);...

2017-09-26 16:07:43 1288

原创 用.lng文件翻译成中文

  在模版中设置如上选项,自动加载startup文件夹中的.dll文件 卸载的方式则是当NX绘画窗口结束时代码:public static int Startup(){    int result = 0;    try    {        Program.theProgram = newProgram();        UFSession uFSessio...

2017-09-21 11:59:16 1561 2

原创 快速设置面选择控件的选择范围

public void initialize_cb() { try { group1 = (NXOpen.BlockStyler.Group)theDialog.TopBlock.FindBlock("group1"); enum0 = (NXOpen.BlockStyler.Enumeration)theD...

2017-09-13 10:09:03 696

原创 关于解决NX重置之后“试图使用不活动的对象”

 在执行Mian函数之前设置好私有字段,根据代码执行顺序Mian函数入口-构造函数-initialize(初始化对象)-dialogShown-Update对话框中已经选中对象之后就已经创建了Feature(特征)并且已经储存在了私有字段中,重置之后自动进入初始化之前的函数        if (BlockFeature != null)        {            t...

2017-09-11 21:38:05 909

原创 feauture 转换 Body

//特征里面可以有多个Body 要理解特征和实体的关系if (feature1 is BodyFeature) { BodyFeature bodyFeature1 = (BodyFeature) feature1; Body [] body1 = bodyFeature1.GetBodies(); } ...

2017-09-08 11:49:06 494

原创 选择多个面创建BOX

//設定選取過濾條件為只允許sheet body跟face private int init_proc(IntPtr select, IntPtr user_data) { UFUi.Mask[] masks = { new UFUi.Mask {object_type = UFConstants.UF_solid_type, ob...

2017-06-22 23:19:45 448

原创 创建对话框寻找多个面

//設定過濾條件 private int init_proc(IntPtr select, IntPtr user_data) { UFUi.Mask[] mask_faces = { new UFUi.Mask {object_type = UFConstants.UF_solid_type, object_subtype = 0...

2017-06-21 23:13:13 449

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除