【发布时间】:2015-10-11 05:01:40
【问题描述】:
我已经尝试公开该字段本身;我也尝试过使用 public get,即使据我所知,属性内的访问修饰符只有在限制性更强的情况下才会生效。但是我无法从 TestUnit 访问 'problem.Points'(最后一行)属性。我收到“让访问者无法访问”的警报。请注意,我可以从同一命名空间中的另一个类访问它。我一定在这里遗漏了一些非常基本的东西。
namespace Coordinates_Path
{
public interface IProblem
{
abstract public List<Node> Points { get; set; }
abstract public Object GetStartState();
abstract public bool IsGoalState();
abstract public Object GetSuccessor();
}
public class ShortestPathThroughCoordinates : IProblem
{
private Node startState;
private List<Node> points;
public List<Node> Points { get { return points; } private set; }
//...
//...
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Coordinates_Path;
using System.Linq;
using System.Collections.Generic;
namespace CoordPathTest
{
[TestClass]
public class KruskalTest
{
[TestMethod]
public void TestMST()
{
// ...
IProblem problem = new ShortestPathThroughCoordinates("P1", coordDic);
MSTKruskal kruskal = new MSTKruskal(problem.Points)
【问题讨论】:
-
错误信息到底是什么?
Node类型是公共的,还是至少对测试程序集可见? -
你是。而已。我到处检查它,但不知何故没有注意到 Node 不是公开的。谢谢
-
然后把它变成一个答案:-)
-
问题中的代码无法编译,不能在接口声明中指定abstract或public。
标签: c# properties public accessor