class a
{
a()
{
do somthing;
}
b()
{
do something ;
}}class b
{
a x=new a ;
x.b()();//问题1:这里有些数据要传给CLASS A的创建者,请问怎么实现?}
{
a()
{
do somthing;
}
b()
{
do something ;
}}class b
{
a x=new a ;
x.b()();//问题1:这里有些数据要传给CLASS A的创建者,请问怎么实现?}
设为Public,b的回返值就会改变的.
{
public Data someData; b()
{
do something ;
} }
class b
{
a x=new a ;
a.someData=....;
x.b()();//问题1:这里有些数据要传给CLASS A的创建者,请问怎么实现?
}
{
public Data someData; b()
{
do something ;
} }
class b
{
a x=new a ;
a.someData=....;
x.b()();//问题1:这里有些数据要传给CLASS A的创建者,请问怎么实现?
}
public class spcom
{
public spcom()
{
_sp = new System.IO.Ports.SerialPort();
if (spInitialize(_sp))
{
try
{
_sp.ReceivedBytesThreshold=40;
_sp.Open();
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
_sp.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this._sp_DataReceived);
}
System.IO.Ports.SerialPort _sp;
public System.IO.Ports.SerialPort sp
{
get
{
return _sp;
}
}
public string str;
/// <summary>
/// 初始化串口通讯参数
/// </summary>
/// <param name="sp">串口实例</param>
private bool spInitialize(System.IO.Ports.SerialPort sp)
{
bool flag = false;
XmlDocument doc = new XmlDocument();
try
{
doc.Load(System.IO.Directory.GetCurrentDirectory() + "\\meter.xml");
sp.PortName = doc.DocumentElement.SelectSingleNode("PortName").InnerText;
sp.BaudRate = int.Parse(doc.DocumentElement.SelectSingleNode("BaudRate").InnerText);
switch (doc.DocumentElement.SelectSingleNode("Parity").InnerText.ToLower())
{
case "even":
sp.Parity = System.IO.Ports.Parity.Even;
break;
case "":
sp.Parity = System.IO.Ports.Parity.Mark;
break;
case "none":
sp.Parity = System.IO.Ports.Parity.None;
break;
case "odd":
sp.Parity = System.IO.Ports.Parity.Odd;
break;
case "space":
sp.Parity = System.IO.Ports.Parity.Space;
break;
default:
break;
}
sp.DataBits = int.Parse(doc.DocumentElement.SelectSingleNode("DataBits").InnerText);
switch (doc.DocumentElement.SelectSingleNode("StopBits").InnerText)
{
case "1":
sp.StopBits = System.IO.Ports.StopBits.One;
break;
case "1.5":
sp.StopBits = System.IO.Ports.StopBits.OnePointFive;
break;
case "2":
sp.StopBits = System.IO.Ports.StopBits.Two;
break;
case "none":
sp.StopBits = System.IO.Ports.StopBits.None;
break;
default:
break; }
flag = true;
}
catch (Exception err)
{
MessageBox.Show(err.Message);
flag = false;
} return flag;
} static string SampleDelegateMethod(string message)
{
return (message);
} public void _sp_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)//当串口接受到定义的数据时就会产生该事件,
{
if (_sp.IsOpen)
{
str = _sp.ReadExisting();//问题:我在这里从串口读数据,问题是我怎么吧这些数据传给spcom的使用者?
_sp.DiscardInBuffer();
}
// return str;
//MessageBox.Show(str);
}