关于.Net中属性的使用探讨(一)

关于.Net中属性的使用探讨(一)
一.VB.Net中的属性
   在使用面向对象思想设计类的时候,尤其当使用.Net开发时,我们经常想对客户代码显示数据,而又同时保证在类中表示数据的封装性。
在这种情况下,属性是理想的解决方案。属性的行为如同类中的数据块。类的用户可以直接访问属性的名称。效果等价于这个类中真正地包
含一个具有这个名称的数据项。在具体地实现中,get属性过程获取属性值;set属性过程设置属性值。.Net Framework中的公共语言规范
(CLS)支持两种不同的属性:
● 标量属性
标量属性表示单个值。这个值可以是一个简单的值,如Char或String,或是较复杂的值,如DateTime等用户自定义的类型对象。
● 索引属性
索引属性表示值的集合。客户代码使用数组语法来访问集合里的值。
文章的后面将详细地讨论这两种属性。但要记住:属性是.Net Framework中的一个标准特征。这就意味着用任何与CLS兼容的语言开发的程
序代码都可以使用在VB.Net的类中定义的属性。
一个实际的例子:
下面显示了City类的一个简单的属性CityName。
   Class City
      private mCityName as String
      public Property CityName() as String
          Get
             return mCityName
          End Get
          Set(ByVal Value as String)
              mCityName=Value
           End Set
        End Property
    End Class
二.标量属性
   上面的一个例子显示的就是标量属性。在上面的例子中要注意以下几点:
   ⑴ City类有一个字段mCityName,它保存城市名,这个字段声名为Private(私有),来阻止客户代码的访问。面向对象开发的最重要的
      目的就是保持类的封装。换句话说:不要声名Public字段。
   ⑵ City类有一个属性CityName,用来获取和设置城市名。这个属性作为mCityName的包装器。CityName属性被声名为Public,这样它
      可以用在客户的代码中。大多数属性趋向于Public,因为属性本质上是为类提供一个方便的公有接口。不过也可能出现Private和
      Protected属性的情况。
   ⑶ 在定义CityName属性的时候,通过在Porperty语句的末尾附加语法As String来显示指定CityName的属性类型,这是一个良好的编程
      习惯;但是在实际的编程中(比如我)在输入完CityName()之后按下回车键,系统也将自动地添加一段Get和Set的语法段,但是系统就
      在Property语句的末尾将不附加As String。即如果你省略了返回类型,默认的返回类型是Object(这是系统的最基础的类,所有的
      Class(包括用户自定义的类)都要继承于Object)。Set属性过程需要用一个参数,来指定新的属性值。参数的类型必须和属性相同。该
      参数必须被定义为ByVal,这表示参数的值通过值传递而不是通过传引用的方式。
   ⑷ CityName属性在定义时被定义了Get和Set过程,但实际中有很多的属性(包括城市名)可能只是需要访问而不需要设置新的值,那么我们
      可以省略Set属性,并对Property使用ReadOnly关键字,就像下面显示的:
      Public ReadOnly Property CityName() as String
         Get
            return mCityName
          End Get
       End Property
      当然有时我们也可以使用WriteOnly关键字,那么这个属性就是可写的。但是只写属性在实际设计中相对较少。
   ⑸ 在定义属性的时候我们也要注意属性的命名方式(尽管这在设计过程中并不是最重要的),一个好的命名方式能够使你在设计过程中享受快
      乐,但定义属性的命名方式比区分大小写的语言(如C#等)要难的多,我个人喜欢为字段设置mXXX(如mCityName),将属性设置为XXX
      (如CityName),选择什么并不重要,根据个人的喜好而定。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
VB.NET是一种高级的编程语言,可以用它来访问Modbus TCPIP通信协议。Modbus TCPIP是一种常用的工业通讯协议,常用于PLC和其他设备之间进行通信。在VB.NET,我们可以使用Modbus TCP类库来轻松地实现Modbus TCPIP通信。在本文,我们将探讨如何使用VB.NET来实现Modbus TCPIP通信以及如何使用Modbus TCP类库来实现这一过程。 1.引入Modbus TCP类库 Modbus TCP类库包含了许多关于Modbus TCP通信的类、方法和属性等。要使用这个类库,我们需要将其添加到我们的VB.NET项目。我们可以从Nuget上安装ModbusTCP.dll包来引入这个类库。 2.连接到Modbus服务器 在VB.NET,我们可以使用一个叫做TcpClient的类来连接到Modbus服务器,如下所示: Dim client as New TcpClient("192.168.1.1", 502) 如果连接成功,我们可以使用这个客户端来发送和接收Modbus TCPIP数据。如果连接失败,我们需要处理异常或者重新连接。 3.发送Modbus TCPIP指令 Modbus TCPIP协议将数据交换定义为读或写操作,并且每个操作都指定了一个数据地址和数据长度。我们可以使用Modbus TCP类库的Write方法来发送Modbus TCPIP指令,如下所示: Dim cmd as New WriteMultipleCoilsRequest(1, 0, {True, False, True}, 3) client.GetStream().Write(cmd.MessageFrame, 0, cmd.MessageFrame.Length) 上面的代码将向Modbus服务器发送一个指令,该指令将地址1处的3个连续线圈写为True、False、True。发送指令后,我们可以使用Read方法来读取Modbus服务器返回的数据。 4.接收Modbus TCPIP响应 Modbus TCPIP响应包含了指令的执行结果和相关数据。我们可以使用Modbus TCP类库的Read方法来接收Modbus TCPIP响应,如下所示: Dim rsp as ModbusTCP.Message.IMessage rsp = ModbusTCP.Message.ReadResponse(client.GetStream()) 如果响应成功,我们可以从响应获取相关数据,如: Dim coils() as Boolean = DirectCast(rsp.Data, ModbusTCP.Message.ReadCoilsResponse).Data 上面的代码将获取Modbus服务器返回数据的线圈值,并存储在一个Boolean数组。 总之,VB.NET是一种非常强大的编程语言,可以用来实现复杂的Modbus TCPIP通信任务。使用Modbus TCP类库可以轻松地发送和接收Modbus TCPIP指令和响应,因此我们可以在开发PLC、控制器等设备的应用程序时,更加方便地实现数据交换。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值