单页ASP.NET中不允许使用结构和类
假设我有一个ASPX文件,其中包含:单页ASP.NET中不允许使用结构和类,asp.net,Asp.net,假设我有一个ASPX文件,其中包含: <%@ Page Language="C#" %> <html> <body> <% int i = 5; Response.Write(i); %> </body> </html> 如果我将关键字“struct”替换为“class”,也会发生同样的情况 我知道“codefile”和“codebehind”类型的项目,但我很好奇为什么我不能像在任何
<%@ Page Language="C#" %>
<html>
<body>
<%
int i = 5;
Response.Write(i);
%>
</body>
</html>
如果我将关键字“struct”替换为“class”,也会发生同样的情况
我知道“codefile”和“codebehind”类型的项目,但我很好奇为什么我不能像在任何C#程序中一样,在一个ASPX文件中声明结构和类
有人能告诉我原因吗
谢谢。因为.aspx页面是作为类编译的 当您有一个代码隐藏类时,您会注意到它被标记为
partial
。.aspx页面及其代码隐藏类都编译为同名的partial
类
我怀疑.aspx的内容放在方法中,您不能在方法中声明结构或类。您可以使用指定了
runat=server
的script
元素执行此操作:
<%@ Page Language="C#" %>
<script runat=server>
struct S
{
public int i;
}
</script>
<html>
<body>
<%
S a = new S();
a.i = 5;
Response.Write(a.i);
%>
</body>
</html>
结构
{
公共国际一级;
}
这样做的结果是创建一个私有结构
到ASPX从中继承的任何类的内部,因此它可以在该页面的任何位置(但在其他任何地方)访问
另一个例子:
有关使用
script
此处嵌入代码块的更多信息:是否缺少公共关键字?@inferon,这是一个输入错误。public关键字出现错误。“我怀疑.aspx的内容放在一个方法中…”可能这就是错误的原因,因为即使.aspx页面被编译为一个类,在任何OO语言中我都可以声明嵌套类(没有深层限制)。感谢您的回答。非常有用。
Line 18: a.i=5;
CS1519: Invalid token '=' in class, struct, or interface member declaration.
<%@ Page Language="C#" %>
<script runat=server>
struct S
{
public int i;
}
</script>
<html>
<body>
<%
S a = new S();
a.i = 5;
Response.Write(a.i);
%>
</body>
</html>