少儿编程变量题目,少儿编程变量列表教程
今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家!
#423头条知识节#
西门子的DB块和背景数据块有什么区别和联系:
1、DB块是由用户建立的数据块,用于建立各种变量,数据,可以是全局变量,也可以是局部变量。全局DB块所有程序都可以访问,也可以被外部设备,如HMI等访问,是博图编程中常用的数据集合。
2、背景数据块简称IDB,但是和DB块的数据类型一致,是FB块或者指令(如定时器等)在调用时自动生成的,内部的变量取决于FB的Input、Output、Inout、Static中设置的变量,是为了存储FB或者指令在运行中所需要保存的数据而产生的,通常背景数据块不可以新建变量,只能在FB中新建。
在实际程序中,IDB中的变量也是可以被全局访问的,如果在FB的属性中设置了非优化的块访问,也支持地址寻址。但一般为了安全考虑,不建议外部程序直接访问IDB中的数据,当然也是可以访问的。
有时候,为了避免产生太多单个的背景数据块,通常用多重背景调用FB或者各种指令,这样可以把这个FB调用的所有指令的背景数据块,统一保存在父FB的一个背景数据块中,让程序看起来更加的整洁,这个模式一般称为套娃,也就是OB1套用FB1、FB2、FB3、FB4等,FB1再套用FB1_1,FB1_2,TON1,TON2等,总之是为了程序简洁好看而套。但是套娃太多,容易让人眼花。
代码中,如果一个方法(函数)需要返回多个参数时,我们应该怎么做呢?其实,做法有很多种,但是在不同语言之间可能不是太通用,所以,我就只能以我自己熟悉的C#来举例了!
C#的方法体常规返回参数,只能返回一个参数对象,如果想返回多个参数,就得对多个对象进行包装,比如使用数组、实体类、结构体等等。
但除此之外,还有几种方式,其实也很好用,尤其是当返回多个参数时我们不想用数组,但是又不想包装参数实体或者结构体,那么下面的方法会很好用。
首先,使用C#的方法需要返回多个参数,除了直接返回,我们还可以采取另外几种方式返回参数的值。比如在方法入参时标记ref关键字,在方法入参时标记out关键字等等;
在创建方法时,方法参数标记ref关键字,此时,当方法被调用以后,我们只需要定义一个变量,以ref的方式入参到方法中即可。如果这个参数的值在方法体内发生变化,此时我们在方法外部再次使用这个变量,这个变量的值就会因为在方法内部被改变而更新。
也可以在创建方法时,对方法的参数标记out关键字。out关键字的用法跟ref关键字的方法其实差不多。只不过使用out关键字的时候,在方法体内是必须要对标记out关键字的变量进行赋值的,否则编译不过去!
至于ref和out关键字的使用场景,基本上可以理解为:当参数入参以后非必须改变值的情况下,用ref,当参数入参以后,必须改变值的情况下用out;至于实际的业务场景,需要根据您自身的情况,选择到底是使用ref还是out!
当然,ref和out是可以配合使用的,也就是一个方法的参数可以同时标记ref和out关键字!如果说必须选一个的话,我选择两个都选!
除了ref和out关键字外,我们有时候也不是非要使用方法返回参数,因为在C#中,如果是引用类型的变量作为参数的话,那么当变量在方法体内发生变化,在方法外也是同步生效的。也就是说,当您入参的参数类型是个引用类型的话,那么您甚至连ref和out都不需要用,此时的变量的值如果在方法体内发生变化,也就相当于给外部变量赋值了!
很多人在定义带有引用类型参数的方法时,会将参数的值改变以后再利用方法return出去,其实这种做法压根没必要!
但是,一定要注意,只有引用类型可以这么做,值类型的参数是不能这么做的!
#程序员# #编程# #编程语言# #计算机#
动态类型一时爽,代码重构火葬场,之前写过PyQt,那叫一个酸爽2333。多年的c#用得好好的,忽然说python统一世界了。然后发现从语法到ide都十分蛋疼。表示科学计算中Python的变量乱串和引用,也是一大坑。
只是一些语法糖和类库比较方便,但刷刷编程题还行,大型项目肯定懵逼,尤其是cs架构,真的是c#主场,python真的只适合科学计算和小型快速胶水场景。
也可能是我没用熟,框架搭不好,其实PyQt还是非常好用的,刚入门理解不了变量间的调用确实会写得很慢。
wWw.Xtw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。
免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!
联系邮箱:773537036@qq.com