Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
MrMilegit
0 / 0 / 0
Регистрация: 17.02.2016
Сообщений: 1
1

Помогите исправить "TypeInitializationException не обработано"

17.02.2016, 00:42. Просмотров 395. Ответов 1
Метки нет (Все метки)

При компиляции данной программы выдает такое:
Помогите исправить "TypeInitializationException не обработано"

Пока не очень разбираюсь,вот думаю лучше у экспертов спросить)
Помогите пожалуйста, добрые люди, буду очень благодарен.
Вот весь код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using terrain;
using Ionic.Zlib;
using Newtonsoft.Json;
using System.IO;
 
namespace terrain
{
    class jsonwmapexporter
    {
        static String filepath = null;
        static void Main()
        {
            byte[] dis = Convert(File.ReadAllText("C:/map.jm")); //open that .jm file
            File.WriteAllBytes("C:/map.wmap", dis); //and saves it there //NEED TO RUN terrain.exe AS ADMIN!
        }
        private struct obj
        {
            public string name;
            public string id;
        }
        private struct loc
        {
            public string ground;
            public obj[] objs;
            public obj[] regions;
        }
        private struct json_dat
        {
            public byte[] data;
            public int width;
            public int height;
            public loc[] dict;
        }
        void Export(TerrainTile[,] tiles, string path)
        {
            File.WriteAllBytes(path, Export(tiles));
        }
        public static byte[] Convert(string json)
        {
            var obj = JsonConvert.DeserializeObject<json_dat>(json);
            var dat = ZlibStream.UncompressBuffer(obj.data);
 
            Dictionary<short, TerrainTile> tileDict = new Dictionary<short, TerrainTile>();
            for (int i = 0; i < obj.dict.Length; i++)
            {
                var o = obj.dict[i];
                tileDict[(short)i] = new TerrainTile()
                {
                    TileId = o.ground == null ? (short)0xff : XmlDatas.IdToType[o.ground],
                    TileObj = o.objs == null ? null : o.objs[0].id,
                    Name = o.objs == null ? "" : o.objs[0].name ?? "",
                    Terrain = TerrainType.None,
                    Region = o.regions == null ? TileRegion.None : (TileRegion)Enum.Parse(typeof(TileRegion), o.regions[0].id.Replace(' ', '_'))
                };
            }
 
            var tiles = new TerrainTile[obj.width, obj.height];
            using (NReader rdr = new NReader(new MemoryStream(dat)))
                for (int y = 0; y < obj.height; y++)
                    for (int x = 0; x < obj.width; x++)
                    {
                        tiles[x, y] = tileDict[rdr.ReadInt16()];
                    }
            return Export(tiles);
        }
        public static byte[] Export(TerrainTile[,] tiles)
        {
            List<TerrainTile> dict = new List<TerrainTile>();
 
            int w = tiles.GetLength(0);
            int h = tiles.GetLength(1);
            byte[] dat = new byte[w * h * 2];
            int idx = 0;
            for (int y = 0; y < h; y++)
                for (int x = 0; x < w; x++)
                {
                    TerrainTile tile = tiles[x, y];
                    short i = (short)dict.IndexOf(tile);
                    if (i == -1)
                    {
                        i = (short)dict.Count;
                        dict.Add(tile);
                    }
                    dat[idx] = (byte)(i & 0xff);
                    dat[idx + 1] = (byte)(i >> 8);
                    idx += 2;
                }
 
            MemoryStream ms = new MemoryStream();
            using (BinaryWriter wtr = new BinaryWriter(ms))
            {
                wtr.Write((short)dict.Count);
                foreach (var i in dict)
                {
                    wtr.Write(i.TileId);
                    wtr.Write(i.TileObj ?? "");
                    wtr.Write(i.Name ?? "");
                    wtr.Write((byte)i.Terrain);
                    wtr.Write((byte)i.Region);
                }
                wtr.Write(w);
                wtr.Write(h);
                wtr.Write(dat);
            }
            return ZlibStream.CompressBuffer(ms.ToArray());
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2016, 00:42
Ответы с готовыми решениями:

При компиляции выдает "TypeInitializationException не обработано"
При компиляции данной программы выдает такое: После чего такая ошибка так и не понял. Помогите...

Как исправить ошибки:"Ни одна из перегрузок метода "ReadLine" не принимает "1" аргументов"
Как исправить ошибки: &quot;Нeявное преобразование типа double в bool невозможно&quot;//строка 55 &quot;Ни одна...

Помогите исправить ошибку "Error 1 The name 'i' does not exist in the current context"
private void button4_Click(object sender, EventArgs e) { for (i = 0; i &lt;=...

Помогите исправить ошибку "Index was outside the bounds of the array"
int a = { 27, 12, 4, 2, 9, 10, 0 }; foreach (int v in a) { ...

WebBrowser выдает ошибку "NullReferenceException не обработано"
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...

1
Vigelforts
141 / 117 / 26
Регистрация: 07.12.2014
Сообщений: 371
17.02.2016, 08:47 2
Ну Ваш код бесполезен в данной ситуации. Судя по всему было исключение в статическом конструкторе XmlDatas. Там и смотрите
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2016, 08:47

HttpWebResponse: ошибка "WebException не обработано"
public string get_html(string adress) // процедура получения html кода страницы { ...

Ни одна из перегрузок метода "Pow" не принимает "4" аргументов.Как исправить?Спасибо
U = Math.Pow(Math.E,x,(3) + Math.Pow(Math.Cos((2)),(x - 4)) / Math.Atan(x), 5.2 *...

Исправить ошибку "CS0103 Имя "FinalTesting" не существует в текущем контексте"
using System; using System.Linq; using System.Text; namespace RockPaperScissors { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru