工控随笔_C#连接PLC_之_C#入门_05_类_01

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Class
{
    class Program
    {
        static void Main(string[] args)
        {
            /* 变量定义: 变量类型  变量名;
             *
             * 变量初始化   变量类型  变量名=初始值;
             *
             * 变量在使用前必须赋值
             */
            int iVar; //定义变量, int类型即为 int32类型, 32位宽度
            float fVar = 3.1415926f; //定义变量并初始化,在C#中必须加上f

            //Console.WriteLine(iVar); //ivar没有初始化,C#变量必须初始化
            Console.WriteLine("{0}",iVar=3);  //变量赋值,变量在使用前必须赋值
            Console.WriteLine(fVar);

            Console.ReadKey();
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ClassTest
{
    /// <summary>
    ///
    /// </summary>
    class cPoint
    {
        //定义类成员变量,默认为private访问控制
        //private访问控制,只能在类的定义范围内访问,
        //在class定义类的 {} 范围之外不能访问
        int x=0;
        //显示的定义为private 访问控制
        private int y=0;

        //定义一个类成员方法,显示的定义为public访问控制
        public void printPoint()
        {
            Console.WriteLine("口");
        }

    }

    /// <summary>
    /// Progam也是一个类,C#是完全面向对象的,因此程序本身也是一个类
    /// 而且类成员函数Main()是程序运行的入口点,即操作系统启动程序是,从Main函数开始执行
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            cPoint point1;  //定义类引用变量

            //通过new实例化一个cPoint类,并将实例化后的对象引用赋值给 类引用变量
            point1 =new cPoint(); 

            //private控制,不能通过对象实例访问
            //point1.x=10;

            //public控制,通过对象实例可以访问
            point1.printPoint();

            Console.ReadKey();
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ClassFunction
{
    class cClass
    {
        //不能在类中使用var定义成员变量,或者说字段

        //通过const关键字定义常量类成员变量
        const int constMaxAge=150; //人的最大寿命为150岁

        //定义成员函数, 包括访问控制修饰符、函数返回类型、函数名和函数参数列表
        //这个地方函数的定义与C++的成员函数基本类似。
        public int getMaxAge()
        {
            return constMaxAge;
        }

        public void setMaxAge()
        {
            //常量一旦定义并且初始化后,就不能再修改其值。
            // constMaxAge = 200;   //这个赋值语句是错误的
        }
    }

    class Program
    {

        static void Main(string[] args)
        {
            /* var关键字
             * 可以根据初始化语句推断变量的变量的类型,而且将变量设定为推断的类型
             * 一旦变量经推断设定好类型后,将不可改变。
             */
            var iNumber = 65535;
            var myClass = new cClass();

            Console.WriteLine(iNumber.GetType());
            //iNumber为 System.Int32, 则不能进行其他类型的赋值
            //iNumber = 3.14F;   //这一句不能编译通过

            {
                //在块的内部定义变量
                System.Int32 iNumber1 = 1234;
                Console.WriteLine(iNumber1);
            }
            //在块内部定义的变量在外部不能引用
            //Console.WriteLine(iNumber1);   // 这里引用 iNumber是错误的

            {
            //在块的内部访问iNumber
            iNumber = 31415926;
            Console.WriteLine(iNumber);

            //在C#中不能和C/C++定义变量屏蔽块外部的变量
            //int iNumber;  //这样定义是错误的
            }

            //可以在方法/函数的类别定义常量
            const int constMinAge = 0;

            Console.WriteLine("人类年龄最大为:{0} 岁",myClass.getMaxAge());
            Console.WriteLine("人类年龄最小为:{0} 岁",constMinAge);

            Console.ReadKey();
        }
    }
}

--------------------------------------------------------------分割线---------------------------------------------------------------

1、文章均为个人原创,欢迎转载,转载请保留出处:https://www.cnblogs.com/volcanol/

2、获取工控PLC、变频器、HMI、计算机、Windows、Linux、嵌入式资料点击:获取资料

3、如果您觉得文章对您有帮助可转至页面上半部分打赏,或移步:打赏 

4、或者在页面右下角点推荐哟!!!

--------------------------------------------------------------分割线---------------------------------------------------------------

原文地址:https://www.cnblogs.com/volcanol/p/12390695.html

时间: 2024-10-07 21:44:42

工控随笔_C#连接PLC_之_C#入门_05_类_01的相关文章

工控随笔_C#连接PLC_之_C#入门_01_配置学习环境

最近在做一个东西,需要用到通用开发语言开发一个软件来读取PLC的内容,这方面的难点在于解析PLC利用 以太网通讯的通讯协议,而一般的PLC厂商对自己的协议是封闭的,对一般的开发者是不开放的,虽然可以通过Wireshark 进行解析,但是工作量很大,且如果对Wireshark不熟悉基本也是无解,很难解析出来. 网上有部分用C#开发的开源库,但是自己对C#语言不懂,所以也就没法学习和应用了.因此我在这里开始了C#的 从零开始学习之旅(我的从零开始是指对C#一无所知,如果你要和我一起开启这趟旅程,应该

工控随笔_C#连接PLC_之_C#入门_04_基本数据类型

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { #region 浮点类型 /*C#中浮点数据类型分为三种 float 类型 double 类型 decimal 类型 三种类型差别在于数据有的精度和有效数据范围不同

工控随笔_21_西门子_WinCC的VBS脚本_10_对象_01

最近有点小忙,各种事情,心情也不是很好,烦心事特别多,因此最近更新的比较慢. 不敢再松懈了,今天正好有点时间,就继续看了一下VBScript中关于对象的一些内容. 一.对象 OOP是编程规模发展到一定程度后才出现的,因为不但操作系统的程序规模越来越大,而且应用 程序的规模也是日益增长. 代码重用在OOP出现后又是进一步提升. 什么是对象呢?  按照以前Unix的套路:一切皆文件.  在这里也可以说一切皆对象.计算机本身 也可以看做一个对象. 对象具有特征和功能,特征表现为属性,功能表现为方法.

工控随笔_03_西门子_Step7项目打开后CPU显示问号解决方法

我们在利用西门子的S7-300/400 PLC的编程软件Step7的时候会出现下面如图所示的问题. 在打开项目的时候,我们会在Simatic Manager里面看到CPU以及一些其他一些组件显示问号. 图.CPU显示问号 一.问题产生的原因 这个问题产生的原因是我们利用低版本的Step7 打开项目的时候,由于Step7 里面没有最新的 硬件的描述性文件导致的. (说明: 西门子的硬件说明文件时.xml格式的文件). 二.解决方法 解决方法有三个: 升级Step7 .重装系统.升级硬件描述性文件.

工控随笔_07_西门子_WinCC利用命令行实现操作log日志

在WinCC中可以通过报警纪录来实现操作员纪录,这个需要WinCC的消息系统进行组态和配置. 利用消息系统进行实现上诉功能不但复杂而且时间久啦也不方便查询.那么有没有一种简单的方法来 实现操作员纪录呢? 我们知道在Windows系统中可以通过批处理来实现很多功能,而且操作也比较简单,学习起来也 没有多大的难度.那么我们是否可以Windows的批处理功能来实现日志功能呢? 一.WinCC执行外部程序. 在WinCC中通过 ProgramExecute("notepad.exe"); 函数

工控系统的指纹识别技术

转载:灯塔实验室 当前,指纹识别技术已被或坏或好的广泛应用于ICT(信息和通信技术)系统.攻击者通过扫描网络获取设备指纹来关联漏洞入侵系统,安全防护者则利用设备指纹来发现系统的脆弱性,检测系统的网络异常.在工业控制系统(ICS)中,指纹识别技术亦用于发现ICS系统脆弱性,检测攻击行为等方向.本文主要关注工控安全领域指纹识别技术. 指纹识别是什么 在ICT领域里,指纹识别是利用不同信息描述运行于网络中的设备或者软件的一种技术.我们了解最多的是设备指纹,被用来远程识别设备的硬件,操作系统,运行软件(

工控信息网络隐患多 电网安防须步步为营

随着工业以太网的快速发展,工控系统网络信息安全问题日渐显露.以太网可能会遇到包括病毒感染.非法操作等网络安全隐患;而软件的漏洞.错误配置或者网络管理的失误也会造成工控网络异常;另外,工业控制系统网络与其他网络连接时缺乏安全边界控制,也是常见的安全隐患.2010年的震网病毒就是例证,最近的"棱镜门"事件又再次为信息网络安全敲响了警钟,对此,我们应当如何应对,这些安全隐患究其根底原因何在?另外,工信部451号文件(即<关于加强工业控制系统信息安全管理的通知>)已出台近两年,为何

最新工控\建模仿真\组态\监控集成开发平台源码解决方案2018

最新工控\建模仿真\组态\监控集成开发平台源码解决方案2018 -- ---所有VC++源码100%提供! 使用E-Form++可视化企业版本,构建属于自己的专业工控.建模仿真. 监控组态.培训仿真平台! -- 100%源码 (全部采用Visual C++/MFC编写)彻底开放组态平台!  下载E-Form++全功能免费评估版本 -- 下载地址 (2018年全新!)  下载此组态解决方案-- 下载地址1 下载地址2 (2018年全新!) HMI硬件采集数据接口代码及说明: 下载硬件数据接口dll

由一道工控路由器固件逆向题目看命令执行漏洞

前言 2019 工控安全比赛第一场的一道固件逆向的题目,好像也比较简单,好多人都做出来了.这里就分别从静态和动态调试分析复现一下这个命令执行的洞. 赛题说明 题目给的场景倒是挺真实的:路由器在处理 tddp 协议时出现了命令注入,导致了远程命令执行.就是后面做出来的这个答案的格式咋提交都不对... 题目给了一个压缩文件,解压出来时一个 bin 文件. 使用 binwalk -Me 直接解压,得到了与一个标准的 linux 风格的文件系统: 后来知道这个固件其实就是 tp_link SR20 路由