我目前有这样的代码,它构造一个类并将其推入堆栈,然后"pops";从堆栈中取出对象,并从中记录属性。
public class Class {
public static Stack<object> ExampleStack = new Stack<object>();
public class ExampleClass
{
public string A {get; set;}
public int b {get; set;}
public int C {get; set;}
ExampleClass(string a, int b, int c)
{
A=a;
B=b;
C=c;
}
}
void main()
{
ExampleStack.Push(new ExampleClass("E", 1, 2));
}
public static void TestStack()
{
Temp = ExampleStack.Pop();
Console.Log(Temp.A);
}
}
我不明白为什么Temp.A
在visual studio中编译之前会出现错误CS1061。
感谢提供的任何帮助
您需要更改此行:
public static Stack<object> ExampleStack = new Stack<object>();
到此:
public static Stack<ExampleClass> ExampleStack = new Stack<ExampleClass>();
CS1061表示:"type"不包含"member"的定义,并且找不到接受类型为"type"的第一个参数的扩展方法"name"(是否缺少using指令或程序集引用?(
您试图调用Temp.A
,但Temp
的类型是object
,并且没有实现A
您可能还需要将ExampleClass
对象移到它自己的CS文件中。
示例Class.cs:
public class ExampleClass
{
public string A {get; set;}
public int B {get; set;}
public int C {get; set;}
public ExampleClass(string a, int b, int c)
{
A=a;
B=b;
C=c;
}
}
程序.cs:
using System;
using System.Collections.Generic;
public static class Program
{
private static readonly Stack<ExampleClass> ExampleStack = new Stack<ExampleClass>();
static int Main()
{
ExampleStack.Push(new ExampleClass("E", 1, 2));
TestStack();
return 0;
}
public static void TestStack()
{
var Temp = ExampleStack.Pop();
Console.WriteLine(Temp.A);
}
}