【发布时间】:2015-06-30 16:34:40
【问题描述】:
这里有很多类似的问题,但我不明白为什么我不能在 C# 中使用它们,而是在其他语言中使用它们。如果我不使用 try catch 块但希望我在使用它时初始化变量,这段代码是如何工作的。在这种情况下如何进行内存分配。 附言我是初学者,其中一些对我来说意义有限。
using System;
public class Example
{
public static void Main()
{
int user=0, pass=0;
do
{
Console.WriteLine("Enter the username");
try
{
user = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter the password");
pass = Convert.ToInt32(Console.ReadLine());
if (user == 12 && pass == 1234)
Console.WriteLine("Correct");
else
Console.WriteLine("Invalid Username or Password");
Console.ReadKey();
}
catch (FormatException)
{
Console.WriteLine("Invalid Format");
}
catch (OverflowException)
{
Console.WriteLine("Overflow");
}
}
while (user != 12 && pass != 1234);
}
}
【问题讨论】:
-
值得注意的是,“为什么我不能在 c# 中使用它们,但在其他语言中 [我可以]”回答为“因为 c# 是一种不同的语言”。这种行为是 c# 设计理念的一部分。他们可以很容易地让它在没有明确初始化的情况下工作,但他们没有。回答为什么实际上不在堆栈溢出的范围内,只是说他们认为这是一个比替代方案更好的主意。
-
This 问题解释了一些。
标签: c#