关于SET和GET用法

那该多好啊!!! 2018-11-22 04:02:48
代码里有这么一段,不晓得value;的值是从哪来的,
public class SockAttri
{
public AutoResetEvent ConnDone;
private int m_CommState;
private int m_ConnPLCID;
private Socket m_currSocket;
private string m_ErrMessage;
private string m_IpRomote;
private bool m_IsServer;
private int m_Port;


public int CommState
{
get
{
return this.m_CommState;
}
set
{
this.m_CommState = value;
}
}
...全文
154 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2018-11-23
  • 打赏
  • 举报
回复
在对象外部可以是对 CommState 赋值
在对象内部可以是对 m_CommState 或 CommState 赋值
你再找找看
由于是 DLL,你也不一定有代码
  • 打赏
  • 举报
回复
引用 6 楼 zxy13826134783 的回复:
[quote=引用 5 楼 z15920696563 的回复:]
[quote=引用 3 楼 zxy13826134783 的回复:]
SockAttri sockattri=new SockAttri();
sockattri.CommState=10;

看到10了没有,10就是value的值,就是这样来的


我知道,问题是我这个代码 里没有给它赋值的地方,但是监视又有值,是外部引用的一个SOCKET通讯用的DLL,[/quote]

没赋值时,默认值为0
value负责接收属性CommState传入的值
谁new了类SockAttri,并为该实例对象的属性CommState设置值,设了啥值,value值为啥,这是c#的一种语法现象
你写这个类SockAttri,肯定会new 这个类吧,并使用属性CommState,不然你就不会写这个类了,也不会写这个属性吧[/quote]
对啊,外部调用这个DLL时是NEW了,Public gConnPLCSck() As CNetComm.SockAttri
但就是没有找到这个变量赋值的地方,我怀疑是这个 AutoResetEvent类给它了值,
threenewbee 2018-11-22
  • 打赏
  • 举报
回复
value是关键字,它是一个隐含的参数。 好比 class A { int x; public void foo() { this.x = 1; //这个this是哪里来的? } }
圣殿骑士18 2018-11-22
  • 打赏
  • 举报
回复
引用 5 楼 z15920696563 的回复:
[quote=引用 3 楼 zxy13826134783 的回复:]
SockAttri sockattri=new SockAttri();
sockattri.CommState=10;

看到10了没有,10就是value的值,就是这样来的


我知道,问题是我这个代码 里没有给它赋值的地方,但是监视又有值,是外部引用的一个SOCKET通讯用的DLL,[/quote]
作为一个强类型语言,又有vs工具帮助,一个变量在哪里被赋值了,不是很好找吗?找变量在哪里被使用了,这种vs的基本操作会吗?
xuzuning 2018-11-22
  • 打赏
  • 举报
回复
value 表示赋值时传入的值
比如 sockattri.CommState=10; 中的 10

由于在类定义时,并不知道会在何时何处对 CommState 赋何值,所以就用 value 代表了
就好比类中的 this 表示的实例化后的对象一样
zxy2847225301 2018-11-22
  • 打赏
  • 举报
回复
引用 5 楼 z15920696563 的回复:
[quote=引用 3 楼 zxy13826134783 的回复:] SockAttri sockattri=new SockAttri(); sockattri.CommState=10; 看到10了没有,10就是value的值,就是这样来的
我知道,问题是我这个代码 里没有给它赋值的地方,但是监视又有值,是外部引用的一个SOCKET通讯用的DLL,[/quote] 没赋值时,默认值为0 value负责接收属性CommState传入的值 谁new了类SockAttri,并为该实例对象的属性CommState设置值,设了啥值,value值为啥,这是c#的一种语法现象 你写这个类SockAttri,肯定会new 这个类吧,并使用属性CommState,不然你就不会写这个类了,也不会写这个属性吧
  • 打赏
  • 举报
回复
引用 3 楼 zxy13826134783 的回复:
SockAttri sockattri=new SockAttri();
sockattri.CommState=10;

看到10了没有,10就是value的值,就是这样来的


我知道,问题是我这个代码 里没有给它赋值的地方,但是监视又有值,是外部引用的一个SOCKET通讯用的DLL,
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
看一下你的 c# 语法入门书。

里面只有二个构造函数,
public SockAttri()
{
this.ConnDone = new AutoResetEvent(false);
this.m_SocktInitialze = false;
this.m_CommState = 0;
this.m_ConnPLCID = 0;
this.m_sckProtocol = 0;
this.m_IpRomote = "";
this.m_Port = 0;

}
zxy2847225301 2018-11-22
  • 打赏
  • 举报
回复
SockAttri sockattri=new SockAttri(); sockattri.CommState=10; 看到10了没有,10就是value的值,就是这样来的
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
看一下你的 c# 语法入门书。

哪里可以给CommState赋值呢,我这个类里没有方法,只有构造函数,
  • 打赏
  • 举报
回复
看一下你的 c# 语法入门书。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧