Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 文件生成执行顺序_C#_File_Build - Fatal编程技术网

C# 文件生成执行顺序

C# 文件生成执行顺序,c#,file,build,C#,File,Build,我的数据结构如下所示: 基本上,此数据结构遵循文件的典型构建执行 每个文件都有一个值和一个依赖项列表,这些依赖项也是File类型。每个文件都公开了一个名为Change的属性,该属性告知文件是否已更改 我头脑风暴形成了一个算法,它遍历所有这些文件并按顺序构建(即典型的构建过程),但没有更好的算法 有人能解释一下吗 非常感谢 Mahesh遵循以下基本步骤 查找没有任何依赖项的文件 首先将这些添加到构建中 查找依赖于生成中的文件而不是其他文件的文件 将这些添加到下一个构建中 重复3和4,直到所有文

我的数据结构如下所示:

基本上,此数据结构遵循文件的典型构建执行

每个文件都有一个值和一个依赖项列表,这些依赖项也是File类型。每个文件都公开了一个名为Change的属性,该属性告知文件是否已更改

我头脑风暴形成了一个算法,它遍历所有这些文件并按顺序构建(即典型的构建过程),但没有更好的算法

有人能解释一下吗

非常感谢


Mahesh遵循以下基本步骤

  • 查找没有任何依赖项的文件
  • 首先将这些添加到构建中
  • 查找依赖于生成中的文件而不是其他文件的文件
  • 将这些添加到下一个构建中
  • 重复3和4,直到所有文件都在生成中

  • 您需要进行一些检查,以检测循环依赖关系,这将导致在步骤5中出现无休止的循环。除此之外,这应该是可行的。

    您正在寻找的算法被调用。

    您正在自找麻烦创建一个与BCL类同名的类,
    文件
    。尽可能使用唯一的类名,特别是避免使用普通名称。感谢链接。这正是我想要的。
    
     class File
        {
            public string Value { get; set; }
            public File[] Dependencies { get; set; }
            public bool Change { get; private set; }

        public File(string value,File[] dependencies)
        {
            Value = value;
            Dependencies = dependencies;
            Change = false;
        }
    }