Как я могу писать эти переменные в одну строку кода на C#?
Я новичок в C#, буквально на странице 50, и мне интересно, как написать эти переменные в одной строке кода:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace consoleHelloWorld
{
class Program
{
static void Main(string[] args)
{
int mon = DateTime.Today.Month;
int da = DateTime.Today.Day;
int yer = DateTime.Today.Year;
var time = DateTime.Now;
Console.Write(mon);
Console.Write("." + da);
Console.WriteLine("." + yer);
}
}
}
Я прихожу из JavaScript, где это сделать, это будет выглядеть так:
document.write(mon+'.'+da+'.'+yer);
любая помощь здесь приветствуется.
10 ответов
посмотреть в составное форматирование:
Console.WriteLine("{0}.{1}.{2}", mon, da, yer);
вы также можете написать (хотя это не рекомендуется):
Console.WriteLine(mon + "." + da + "." + yer);
и, с выпуском C# 6.0, у вас есть строковые выражения интерполяции:
Console.WriteLine($"{mon}.{da}.{yer}"); // note the $ prefix.
вы можете сделать всю программу в одну строку! Да, правильно, одна строчка!
Console.WriteLine(DateTime.Now.ToString("yyyy.MM.dd"));
вы можете заметить, что я не использовал тот же формат даты, что и вы. Это потому, что вы должны использовать Международный Формат Даты как описано в этот документ W3C. Каждый раз, когда вы не используете его, где-то умирает милое маленькое животное.
вы можете сделать почти то же самое, что и в JavaScript. Попробуйте это:
Console.WriteLine(mon + "." + da + "." + yer);
или вы можете использовать WriteLine
как string.Format
заявление делать:
Console.WriteLine("{0}.{1}.{2}", mon, da, yer);
что эквивалентно:
string.Format("{0}.{1}.{2}", mon, da, yer);
число параметров может быть бесконечным, просто убедитесь, что вы правильно индексируете эти числа (начиная с 0).
вы должны попробовать это:
Console.WriteLine("{0}.{1}.{2}", mon, da, yet);
посмотреть http://www.dotnetperls.com/console-writeline для более подробной информации.
Если вы хотите использовать что-то похожее на JavaScript, вам просто нужно сначала преобразовать в строки:
Console.WriteLine(mon.ToString() + "." + da.ToString() + "." + yer.ToString());
но (намного) лучшим способом было бы использовать опцию формата:
Console.WriteLine("{0}.{1}.{2}", mon, da, yer);
теоретически вы могли бы сделать все это просто:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace consoleHelloWorld {
class Program {
static void Main(string[] args) {
Console.WriteLine(DateTime.Now.ToString("MM.dd.yyyy"));
}
}
}
это:
string format = "{0} / {1} / {2} {3}";
string date = string.Format(format,mon.ToString(),da.ToString(),yer.ToString();
Console.WriteLine(date);
на самом деле, вероятно, есть способ отформатировать его автоматически, даже не делая этого самостоятельно.
проверить http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
просто:
DateTime.Now.ToString("MM.dd.yyyy");
ссылка на MSDN для всех параметров форматирования для DateTime.ToString () метод
Use $ before "" это позволит записывать переменные между этими скобками
Console.WriteLine($"{mon}.{da}.{yer}");
профессиональный путь :
Console.WriteLine($"{DateTime.Today.Month}.{DateTime.Today.Day}.{DateTime.Today.Year}");
Console.WriteLine($"month{DateTime.Today.Month} day{DateTime.Today.Day} year{DateTime.Today.Year}");
5.24.2016
month5 day24 year2016