Как я могу писать эти переменные в одну строку кода на 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"));
    }
  }
}

 DateTime dateTime = dateTime.Today.ToString("MM.dd.yyyy");

 Console.Write(dateTime);

это:

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 () метод

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx


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