using System;
using System.Runtime.InteropServices;
namespace TimeTest
{
class Program
{
static void Main(string[] args)
{
SYSTEMTIME t;
GetLocalTime(out t);
Console.WriteLine($"{t.wYear}/{t.wMonth}/{t.wDay} {t.wHour}:{t.wMinute}:{t.wSecond}");
}
[DllImport("kernel32.dll")]
static extern void GetLocalTime(out SYSTEMTIME lpSystemTime);
}
[StructLayout(LayoutKind.Sequential, Pack = 2)]
struct SYSTEMTIME
{
public ushort wYear;
public ushort wMonth;
public ushort wDayOfWeek;
public ushort wDay;
public ushort wHour;
public ushort wMinute;
public ushort wSecond;
public ushort wMilliseconds;
}
}
При компиляции выдаёт ошибку в коде: Console.WriteLine
- Непредвиденный знак $
В чём его особенность?
И как его использовать?
На данный момент тестировал на Net.4.0
Это нововведение C#6 называется "интерполяция строк".
Этот символ позволяет указывать переменные, окруженные фигурными скобками, прямо в строках без использования конкатенации или форматирования.
Например, вместо того, чтобы писать:
Console.WriteLine(String.Format("{0}/{1}/{2} {3}:{4}:{5}",
t.wYear, t.wMonth, t.wDay, t.wHour, t.wMinute, t.wSecond));
или
Console.WriteLine(t.wYear + "/" + t.wMonth + "/" + t.wDay + " " + t.wHour + ":" + t.wMinute + ":" + t.wSecond);
Гораздо читабельнее выглядит так:
Console.WriteLine($"{t.wYear}/{t.wMonth}/{t.wDay} {t.wHour}:{t.wMinute}:{t.wSecond}");
Интерполяция строк была введена в версии C#6.
Если у Вас данная запись не проходит проверку синтаксиса, попробуйте обновиться до Visual Studio 2015.
Также рекомендую почитать статью на MSDN: https://msdn.microsoft.com/ru-ru/library/dn961160.aspx
Программа по передаче файлов с помощью сокетов и TCP/IPВ документации Microsoft нашёл рабочий пример получения сообщения
Есть консольный скрипт (1), который при запуске пишет в базу свой PID полученный функцией getmypid()