少有人走的路

勇哥的工业自动化技术网站

python知识导航贴,持续更新

C# 语言高级特性知识导航贴,持续更新

netMarketing类库: 类库说明

本站视觉相关教程整理贴子,持续更新

C++相关导航贴,持续更新

本站收费服务公告(netMarketing源码,工业自动化行业培训班等)

2020年勇哥的机器视觉实验项目清单(大纲)

本站连载贴子系列,持续更新中……

勇哥的免费视频教程清单

勇哥在B站发布的视频清单

运动控制专题,持续更新

CodeDOM支持.net core吗?

Expression类编译表达式

如何实现自己的编译器,微软已经给大家现成的轮子了。微软的Expression类提供了一套拼接、编译Lambda表达式的完整方法,可以用它轻松定义你自己的语法


RpnExpression方法:将中缀表达式转换为逆波兰表达式。用关键字将表达式字符串分割为一个数组;按照优先级出栈入栈;返回一个逆波兰表达式顺序的字符串列表。

ComplieRpnExp方法:根据逆波兰表达式顺序,依次弹出运算符转换为Expression的各子类如二元表达式BinaryExpression、条件表达式ConditionalExpression、常数表达式ConstantExpression等;参数首先判断是否常数,如果不是,则调用GetTagExpression方法,将字符串转换为方法调用MethodCallExpression,最终会将该参数编译为一个Tag。经过处理最终返回一个LambdaExpression。

vs2022第二天打开项目nuget包就都感叹号了

vs2022的C# 项目,总是第二天打开项目后nuget包就变感叹号了。

昨天还好好的。

image.png

这种情况怎么办?

删除nuget包,再次安装当然可以。但是包多了就不好搞了。


解决办法是“重新生成解决方案”就好了。

为啥PropertyGrid控件的SelectedObject赋值后没有效果,控件无任何显示


这个问题看下面的代码就知道了。

启用注释的那句”propertyGrid1.SelectedObject = new param2();“, 可以看到此现象。

但是如果你把它修改成下面这样,又可以了!

 public class param2
    {
        private int _k1;
        private string _str1;
        public int k1
        {
            get { return _k1; }
            set { _k1 = value; }
        }
        public string str1
        {
            get { return _str1; }
            set { _str1 = value; }
        }
    }

收录几个国内Nuget镜像


C#高级话题:特性 attribute

勇哥注:

C#的特性(attribute)常见于一些框架(例如wcf),控件(例如PropertyGrid),编译器控制等。

特性非常常见,它的本质是为对象提供额外的信息和行为,使用者可以通过反射读到这些信息或者使用这些行为。

Lua做为内嵌脚本调用halcon算子

勇哥注:

把C#做为Lua的宿主,然后把把halcon算子封装成Lua的功能函数,就可以创建内嵌脚本。

你可以随时修改脚本,然后继续运行程序,实时生效。

或者你也可以指一个命令行窗口,以指令方式去执行封装好的Lua的功能函数,起到调试的效果。

内嵌脚本的好处是可以运行时暂停设备后,修改脚本后可以继续运行,这样不用为了修改功能而关闭软件,再修改软件后重新编译。这样可以非常灵活的在线修改逻辑。

以上的效果类似于Epson机器人的内嵌VB脚本语言,此模式在业内被大量应用。

<< < 1 2 >>
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.3

Copyright www.skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864