C# 非静态字段方法或属性需要对象引用
我在调用加密方法时遇到问题。它显示错误CS0210“非静态字段、方法或属性需要对象引用”。我试图通过在加密方法中添加“static”关键字来纠正这个问题,但它也不起作用。我该如何解决这个问题C# 非静态字段方法或属性需要对象引用,c#,C#,我在调用加密方法时遇到问题。它显示错误CS0210“非静态字段、方法或属性需要对象引用”。我试图通过在加密方法中添加“static”关键字来纠正这个问题,但它也不起作用。我该如何解决这个问题 class Program { string alphabet = "ABCDEFGHIJKLMNOPQRSTYVWXYZ"; string alph = "abcdefghijklmnopqrstuvwxyz"; static void Main(string[] args)
class Program
{
string alphabet = "ABCDEFGHIJKLMNOPQRSTYVWXYZ";
string alph = "abcdefghijklmnopqrstuvwxyz";
static void Main(string[] args)
{
Console.WriteLine("Input text to encrypt: ");
string text = Console.ReadLine();
Console.WriteLine("Input key: ");
string key = Console.ReadLine();
encrypt(text, key);
Console.ReadLine();
}
int positionAlphabet(char letter)
{
for (int i = 0; i < alphabet.Length; i++)
{
if (alphabet[i] == letter || alph[i] == letter)
{
return i;
}
}
return -1;
}
public void encrypt(string text, string key)
{
string output = "";
for (int i = 0; i < text.Length; i++)
{
int positionLetterKey = positionAlphabet(key[i % key.Length]);
int positionLetterText = positionAlphabet(text[i]);
output += alphabet[(positionLetterText + positionLetterKey) % alphabet.Length];
}
Console.WriteLine("Encryption output: \n", output);
}
}
类程序
{
字符串字母表=“ABCDEFGHIJKLMNOPQRSTYVWXYZ”;
字符串alph=“abcdefghijklmnopqrstuvxyz”;
静态void Main(字符串[]参数)
{
Console.WriteLine(“输入要加密的文本:”);
string text=Console.ReadLine();
Console.WriteLine(“输入键:”);
string key=Console.ReadLine();
加密(文本、密钥);
Console.ReadLine();
}
int位置字母(字符字母)
{
for(int i=0;i
您也应该在函数前添加静态关键字。您不能从其他静态函数调用非静态函数。谢谢,这解决了错误,但我现在遇到另一个问题。我在运行程序后没有得到任何输出,我的encrytpion无法工作。你知道怎么解决这个问题吗?我想做一个维格纳密码。请详细说明你的帖子。用您的预期输出和您现在得到的输出编辑它。那么我们可以更好地帮助您。下次,请说出哪一行出错了。您的问题是试图从静态方法Main
访问非静态方法encrypt
。如果将encrypt
设置为static,它仍然无法工作,因为它调用的positionAlphabet
也是非静态的。把它们都修好,它应该会起作用。