如何在项目中使用写入文本文件的代码作为cs类?

时间:2014-08-14 20:48:19

标签: c# .net

我有一个项目,里面有一个类代码创建一个文本文件,每次我添加或删除地图变量map,map1时我都会使用这个项目更新文本文件....但其余代码保持不变原样。

我想从文本文件创建一个cs文件,这样我就可以将它添加到我的其他项目中并将其用作类。 就像我正在点击我的项目名称添加>类,但不创建新类,并从文本文件中复制代码,但使用文本文件作为类。

这是现在的文本文件内容:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace TowerDefense
{
    class Level
    {

int[,] map = new int[,]
{
 {1,1,1,0,0,0,0,0,},
 {0,0,1,0,0,0,0,0,},
 {0,0,1,1,0,0,1,1,},
 {0,0,0,1,0,0,1,0,},
 {0,0,1,1,0,0,1,0,},
 {0,0,1,0,0,0,1,0,},
 {0,0,1,1,1,0,1,0,},
 {0,0,0,0,1,1,1,0,},
};

int[,] map1 = new int[,]
{
 {0,0,0,1,1,1,1,0,},
 {0,0,0,1,0,0,1,0,},
 {0,0,0,1,1,0,1,0,},
 {1,1,0,0,1,0,1,0,},
 {0,1,0,0,1,0,1,0,},
 {0,1,1,1,1,0,1,0,},
 {0,0,0,1,1,0,1,1,},
 {0,0,0,0,0,0,0,0,},
};

        private List<Texture2D> tileTextures = new List<Texture2D>();

        public void AddTexture(Texture2D texture)
        {
            tileTextures.Add(texture);
        }

        public int Width
        {
            get { return map.GetLength(1); }
        }
        public int Height
        {
            get { return map.GetLength(0); }
        }

        public void Draw(SpriteBatch batch)
        {
            for (int x = 0; x < Width; x++)
            {
                for (int y = 0; y < Height; y++)
                {
                    int textureIndex = map[y, x];
                    if (textureIndex == -1)
                        continue;

                    Texture2D texture = tileTextures[textureIndex];
                    batch.Draw(texture, new Rectangle(
                        x * 32, y * 32, 32, 32), Color.White);
                }
            }
        }
    }
}     

1 个答案:

答案 0 :(得分:0)

  1. 使用.cs扩展名重命名文件。这由解决方案自动解释为C#源文件。

  2. 以编程方式编辑.csproj文件,将文件添加到项目中。您可以在此处找到有关如何执行此操作的详细信息:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&es_th=1&ie=UTF-8#q=adding%20file%20to%20.csproj&qscrl=1

  3. 如果需要使用CSharpCodeProvider,请编译项目。