using System;
using System.Collections.Generic;
using Newtonsoft.Json;
namespace JsonTest
{
public class Deserialized
{
public class Region
{
public class Domain
{
public string code { get; set; }
public string name { get; set; }
public int id { get; set; }
}
public string code { get; set; }
public string countryCode { get; set; }
public string name { get; set; }
public int id { get; set; }
public Domain domain { get; set; }
}
public Dictionary<int, Region> regions { get; set; }
}
class Program
{
static void Main(string[] args)
{
string json = @"{
""regions"": {
""937"": {
""code"": ""Russia"",
""countryCode"": ""ru"",
""name"": ""Россия"",
""id"": 937,
""domain"": {
""code"": "".ru"",
""name"": ""Росийская Федерация"",
""id"": 175
}
},
""979"": {
""code"": ""Bryansk,Bryansk Oblast,Russia"",
""countryCode"": ""ru"",
""name"": ""Брянск"",
""id"": 979,
""domain"": {
""code"": "".ru"",
""name"": ""Росийская Федерация"",
""id"": 175
}
}
}
}";
Deserialized data = JsonConvert.DeserializeObject<Deserialized>(json);
}
}
}
static byte[] crc(byte[] data) {
ushort sum = 0;
foreach (byte b in data)
sum += b;
return new byte[] {(byte)(sum & 255), (byte)(sum >> 8)};
}
static ushort crc(byte[] data, ushort sum = 0) {
foreach (byte b in data) sum += b;
return sum;
}
static void Main(string[] args)
{
// пакеты без чексумм
byte[] mass1 = new byte[] { 75, 0, 25, 0, 3, 48, 117, 0, 126, 37, 0, 188, 138, 169, 53, 66, 15, 52, 115, 203, 112, 103, 220, 16, 92, 237, 76, 80, 254};
byte[] mass2 = new byte[] { 75, 0, 25, 0, 3, 64, 156, 0, 126, 37, 0, 188, 138, 169, 245, 165, 14, 52, 115, 203, 96, 64, 220, 16, 92, 237, 76, 80, 254};
byte[] mass3 = new byte[] { 75, 0, 25, 0, 3, 80, 195, 0, 126, 37, 0, 88, 138, 169, 181, 9, 14, 52, 115, 203, 120, 60, 220, 32, 131, 237, 236, 214, 255};
byte[] mass4 = new byte[] { 75, 0, 25, 0, 3, 112, 17, 1, 126, 37, 0, 88, 138, 169, 181, 9, 14, 52, 115, 203, 120, 60, 220, 32, 131, 237, 236, 214, 255};
byte[] mass5 = new byte[] { 75, 0, 25, 0, 3, 60, 134, 1, 126, 37, 0, 88, 138, 169, 181, 9, 14, 52, 115, 203, 120, 60, 220, 32, 131, 237, 236, 214, 255};
foreach(var mass in new byte[][] {mass1, mass2, mass3, mass4, mass5}) {
bool first = true;
Console.Write("{");
foreach (var b in mass) {
if (!first) Console.Write(", ");
else first = false;
Console.Write(b);
}
var sum = BitConverter.GetBytes(crc(mass));
// вывод чексуммы
Console.WriteLine(", {0}, {1}}}", sum[0], sum[1]);
}
}
{ get; set; }
), так и событие это "интерфейс" для делегата - вы не можете напрямую изменять или вызывать делегат, вы делаете это с помощью события. Можете также почитать про синтаксис add/remove у событий - тогда аналогия со свойством будет еще понятнее.