【发布时间】:2019-11-12 13:13:12
【问题描述】:
在这里编码新手。我正在练习我的 C# 来制作 Caesar Cipher 编码器。当我制定一种方法来加密我的消息时,我收到了这个错误。 (见下文)。
为什么会出现这个错误?
我尝试将方法返回类型更改为 void。但后来它说它不能将 void 类型转换为 bool。我可以在这里寻求帮助吗?
using System;
namespace CaesarCipher
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Encrypt("hello"));
}
static string Encrypt(string message)
{
char[] alphabet = new char[] {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
string secretMessage = message.ToLower();
char[] secretMessageChar = secretMessage.ToCharArray();
char[] encryptedMessage = new char[secretMessageChar.Length];
for (int i = 0; i < secretMessage.Length; i++)
{
if (!Char.IsLetter(secretMessageChar[i]))
{
continue;
}
char letter = secretMessageChar[i];
int caesarLetterIndex = (Array.IndexOf(alphabet, letter) + 3) % 26;
char encryptedCharacter = alphabet[caesarLetterIndex];
encryptedMessage[i] = encryptedCharacter;
return String.Join("", encryptedMessage);
}
}
}
}
我希望输出类似于“khoor”,但它却是这样写的: Program.cs(12, 19): error CS0161: 'Prog)': 并非所有代码路径都返回值
【问题讨论】:
-
如果秘密消息 (
secretMessage) 为空 您的例程不会返回 任何内容。
标签: c#