C# 有两个事件,第一个事件会获取一个字符串str,现在要求第二个事件发生的时候能获得字符串str
时间: 2024-10-29 12:23:49 浏览: 5
C#获取字符串后几位数的方法
在C#中,如果你有两个相关的事件处理程序,其中一个事件需要获取并存储一个字符串`str`,然后另一个事件在触发时需要这个字符串,你可以这样做:
首先,在你的类中定义一个私有变量来保存这个字符串,并公开一个属性供外部访问和设置:
```csharp
public class MyClass
{
private string str;
public string Str
{
get { return str; }
set
{
if (value != null)
str = value;
OnStrSetted(); // 触发事件,让订阅者知道Str已经设置
}
}
public event EventHandler<EventArgs<string>> StrChanged; // 定义一个字符串改变事件
private void OnStrSetted()
{
if (StrChanged != null)
StrChanged(this, new EventArgs<string>(str)); // 当Str被设置时触发StrChanged事件
}
}
```
这样,当外部代码通过`Str`属性给`str`赋值时,`OnStrSetted`会被调用并触发`StrChanged`事件,传递当前的`str`值。
然后在其他类或组件中订阅并处理这个事件:
```csharp
MyClass myObject = new MyClass();
myObject.StrChanged += MyEventHandler;
private void MyEventHandler(object sender, EventArgs<string> e)
{
// 这里可以访问并使用str,例如
string updatedStr = e.Argument;
Console.WriteLine($"Received updated string: {updatedStr}");
}
```
阅读全文