我在调用方法encrpyt时遇到问题。它显示错误CS0210“非静态字段,方法或属性需要对象引用”。我试图通过在encrpyt方法中添加'static'关键字来纠正此问题,但是它也没有起作用。如何解决这个问题?
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);
}
}
您还应该在PositionAlphabet函数之前添加一个静态关键字。您不能从另一个静态函数调用非静态函数。