使用:
if Reachability.isConnectedToNetwork() == false
{
// internet is down
let error = NSError(domain: "", code: 3, userInfo: nil) let alertView = createDefaultAlertError(error.code)
let tryAgainAction = UIAlertAction(title: ClassGeneralMessages().userMessageTryAgain, style: UIAlertActionStyle.Default) { (UIAlertAction) in
}
else
{
// internet is ok
// run more code here
}
和
public static void ColoredConsoleWrite(ConsoleColor color, string text)
{
ConsoleColor originalColor = Console.ForegroundColor;
Console.ForegroundColor = color;
Console.Write(text);
Console.ForegroundColor = originalColor;
}
有没有办法在红色中显示Apple,同时保留我最喜欢的水果:蓝色?
答案 0 :(得分:5)
是的,可以在同一行上以不同颜色书写文字。但是你必须改变每种不同颜色的前景色。也就是说,如果你想用蓝色写“我最喜欢的水果:”,用红色写“苹果”,那么你必须做两次Write
操作:
var originalColor = Console.ForegroundColor;
Console.ForegroundColor = ConsoleColor.Blue;
Console.Write("My farorite fruit: ");
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("Apple");
Console.ForegroundColor = originalColor;
如果你想通过一次调用来做到这一点,那么你需要一些方法来在字符串中定义它。 .NET Framework不提供此类工具。建立这样的东西是可能的。它将涉及编写类似于String.Format所使用的字符串解析器,您可以在其中定义为其提供值作为参数的占位符。
也许更简单的方法是编写一个采用颜色和字符串对列表的方法,如:
public class ColoredString
{
public ConsoleColor Color;
public String Text;
public ColoredString(ConsoleColor color, string text)
{
Color = color;
Text = text;
}
}
public static void WriteConsoleColor(params ColoredString[] strings)
{
var originalColor = Console.ForegroundColor;
foreach (var str in strings)
{
Console.ForegroundColor = str.Color;
Console.Write(str.Text);
}
Console.ForegroundColor = originalColor;
}
public void DoIt()
{
WriteConsoleColor(
new ColoredString(ConsoleColor.Blue, "My favorite fruit: "),
new ColoredString(ConsoleColor.Red, "Apple")
);
}