C# Windows 窗体应用程序,两个带有一个字符串变量的 .cs 文件
Posted
技术标签:
【中文标题】C# Windows 窗体应用程序,两个带有一个字符串变量的 .cs 文件【英文标题】:C# Windows Forms Application, two .cs files with one string variable 【发布时间】:2021-07-28 02:43:55 【问题描述】:我有两个 .cs 文件,我想使用一个按钮来更改字符串通道的值,但它调用错误 CS0236:(字段初始化程序无法引用非静态字段、方法或属性),请帮助我,我是找了两天的解决办法。谢谢。
在 Form1.cs 我有
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TwitchChatBot
public partial class Form1 : Form
string channel;
//this line is a problem
IrcClient irc = new IrcClient("irc.twitch.tv", 6667, "nickname", "password", channel);
在 IrcClient.cs 我有
using System;
using System.Collections.Generic;
using System.IO;
using System.Net.Sockets;
using System.Text;
namespace TwitchChatBot
public class IrcClient
private string userName;
private string channel;
private TcpClient tcpClient;
private StreamReader inputStream;
private StreamWriter outputStream;
public IrcClient(string ip, int port, string userName, string password, string channel)
this.userName = userName;
this.channel = channel;
tcpClient = new TcpClient(ip, port);
inputStream = new StreamReader(tcpClient.GetStream());
outputStream = new StreamWriter(tcpClient.GetStream());
outputStream.WriteLine($"PASS password");
outputStream.WriteLine($"NICK userName");
outputStream.WriteLine($"USER userName 8 * :userName");
outputStream.WriteLine($"JOIN #channel");
outputStream.Flush();
【问题讨论】:
你究竟是从哪里得到这个错误的? 这能回答你的问题吗? A field initializer cannot reference the nonstatic field, method, or property @KlausGütter 当我用字符串频道更改“频道”时 如果您显示演示问题的代码而不是不显示问题的代码会很好。您可以将文件的初始化放入构造函数或其他方法中。 @KlausGütter 我已经编辑了这个问题,也许这样更好。 【参考方案1】:将您的 irc 类的实例化移动到构造函数,而不是将其放在类成员本身中。
public partial class Form1 : Form
string channel = string.Empty;
IrcClient irc;
public Form1()
InitializeComponent();
irc = new IrcClient("irc.twitch.tv", 6667, "nickname", "password", channel);
或者更好的是,添加某种“连接”按钮,并在您通过文本框或其他方式真正了解频道后在其中创建它。
【讨论】:
非常感谢。这对我帮助很大。谢谢以上是关于C# Windows 窗体应用程序,两个带有一个字符串变量的 .cs 文件的主要内容,如果未能解决你的问题,请参考以下文章