用了Dictionary<string, string> 就报致命错误
本帖最后由 zhengjian211 于 2012-4-21 18:42 编辑static public void t1()
{
PromptEntityOptions p = new PromptEntityOptions("\n选择实体");
PromptEntityResult res = Application.DocumentManager.MdiActiveDocument.Editor.GetEntity(p);
if (res.Status == PromptStatus.OK)
{
Dictionary d = IsPipe();}public static Dictionary IsPipe()
{
Dictionary result = null;
result.Add("管道层", "WP_G");
}
报致命错误。。。怎么回事 百思不得其解啊!
public static Dictionary IsPipe()
{
Dictionary result = null;
result.Add("管道层", "WP_G");
}这是ispipe函数
我不知道该怎么说。
你还是先多看看别人的代码吧,先把一些基础的东西搞清楚。 YY是我思考的方式,BT是我追求的境界。 回复2楼:的确是对概念不清楚。
Dictionary result = null; 这句在 vs里面会马上抛出错误,而在cad里面则是直接崩溃。
只能说这种机制不是很合理,至少给个改错的机会了 1,不是在你说的那一句出错
2,应该不会是只给别人改错的机会而独独不给你吧?这里也用不着改错。
3,再说一句废话,多看别人的代码。 Dictionary设置为null的话实际上是没有创建对象的,所以还需要new
把Dictionary result = null改成Dictionary<string,string> result = new Dictionary<string,string>()试试 sieben 发表于 2012-4-25 16:22 static/image/common/back.gif
1,不是在你说的那一句出错
2,应该不会是只给别人改错的机会而独独不给你吧?这里也用不着改错。
3,再说 ...
请问是哪一句出了错,这句在vs里面运行到此处会抛出错误而到了内嵌的dll里面就直接报内存错误,最后的改正方法的确是7楼所说. public static Dictionary IsPipe()
{
Dictionary result = null改成Dictionary<string,string> result = new Dictionary<string,string>()
result.Add("管道层", "WP_G");
return result;
} 可能我没表达清楚,同样的代码写在标准的控制台程序里面调试的时候会抛出错误,而到了内嵌cad的dll里面则直接报内存错误。 对于各位高手可能是小菜,对于我们业余选手可能要花上很多时间修改。 谢谢各位的指教!
页:
[1]
2