ASP.NET代码文件、代码隐藏和继承

ASP.NET代码文件、代码隐藏和继承,asp.net,webforms,Asp.net,Webforms,我的困惑在这里或网络上并不新鲜,但我有一些问题在任何地方都找不到答案: 第一个问题是: 为什么在CodeFile而不是CodeBehind上需要继承 我读了:还有更多的页面,我知道CodeFile用于源代码和动态编译,而另一个用于程序集。这给我提出了另一个问题: 为什么每个人都说CodeBehind必须是一个集合如果我发现 File.aspx.cs无处不在,包括我的测试项目和它 工作起来像个符咒?这是已编译的程序集吗 但是,对于第一个问题,根据我提供的url,我可能理解为什么需要继承。我假设编译

我的困惑在这里或网络上并不新鲜,但我有一些问题在任何地方都找不到答案:

第一个问题是:

为什么在CodeFile而不是CodeBehind上需要继承

我读了:还有更多的页面,我知道CodeFile用于源代码和动态编译,而另一个用于程序集。这给我提出了另一个问题:

为什么每个人都说CodeBehind必须是一个集合如果我发现 File.aspx.cs无处不在,包括我的测试项目和它 工作起来像个符咒?这是已编译的程序集吗

但是,对于第一个问题,根据我提供的url,我可能理解为什么需要继承。我假设编译器必须知道稍后要编译的部分类的名称。有道理。然而,在CodeBehind上是否也有必要呢?如果我们要合并部分类,我想我应该给出要合并的类的名称。我甚至尝试向.cs文件添加另一个分部类,它编译/运行良好

我是不是遗漏了什么

我还读到CodeBehind不再使用了,它是一个新的代码文件

有没有.NET专家帮我

提前谢谢大家

更新:


我尝试在CodeBehind上不使用继承来实现事件。它不起作用。这更有意义。但是,它并不抱怨编译,而CodeFile抱怨编译。有什么原因吗?

继承属性包含写在代码隐藏文件中的类名。您可以在同一代码隐藏文件中有多个类,并在两个不同的文件中继承。aspx文件为aspx页提供代码隐藏。当您添加一个新的“带代码隐藏的ASP.NET网页”时,我们将其命名为NewPage.aspx,同时还会创建两个文件,分别命名为NewPage.aspx.cs和NewPage.aspx.designer.cs。NewPage.aspx.cs是您的代码隐藏文件。正如Vijay所说,由于(C#)文件可以有多个类(这与Java不同,Java中一个类文件只能包含一个类,并且类名必须与文件名匹配),
Inherits=[namespace].[class]
指示您希望实际用于网页的类。
CodeBehind
属性用于Web应用程序项目。另一方面,
CodeFile
属性用于网站项目