c#编程的问题,一个名称空间有多个类public的问题?(高手解答)

猫尾巴 2004-08-07 11:12:47
c#编程的问题,一个名称空间有多个类public的问题?(高手解答)


各位大虾:
小弟在一个名称空间中使用多个类,除了含main()的类,其余的类前有public:
public class xxxx,在编译时,有错,由于是书上的例子,对比后,发现只是多了public,
却掉后便成功,请问这是why?
另外,我以前在书上看到过vs.net2003中有比较两个源文件代码异同的工具,请问
在那,具体方法?


thank you very much!!

一个跋涉在求知途中的大二计算机系学生。。。。。。
...全文
253 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wagod 2004-08-09
  • 打赏
  • 举报
回复
static public void Sort(object [] sortArray, CompareOp

把static放在public后面试试
uno 2004-08-09
  • 打赏
  • 举报
回复
编译器不都说了吗?
BubbleSorter.Sort是public
但是你的实参employeeCompareOp其类型的访问性比public低
谭建新 2004-08-09
  • 打赏
  • 举报
回复
我也是刚学C#,不过书上的东西不一定都是对的,特别像国内的一些书,误人子弟
猫尾巴 2004-08-09
  • 打赏
  • 举报
回复
zjsen(星愿)(个人观点,仅供参考.请自行验证)和 gzyzljk(潜龙) 的方法不对,
湿了不行!!
猫尾巴 2004-08-09
  • 打赏
  • 举报
回复
uno(钢盅郭子 is right
my problem 解决。
在 delegate bool CompareOp(object lhs,object rhs);
前 加上 public!!
thank you everyone!
gzyzljk 2004-08-08
  • 打赏
  • 举报
回复
static public void Sort(object [] sortArray, CompareOp ...
静态方法前修饰符使用错误!
八爪鱼-杭州 2004-08-08
  • 打赏
  • 举报
回复
public class BubbleSorter
{
static public void Sort(object [] sortArray, CompareOp ...
------------------------------
public static void Sort(...
八爪鱼-杭州 2004-08-07
  • 打赏
  • 举报
回复
public class xxxx
-------------------------
这样定义没有问题,你把代码贴出来看看
猫尾巴 2004-08-07
  • 打赏
  • 举报
回复

源代码如下:
using System;

namespace ConsoleApplication2
{

delegate bool CompareOp(object lhs,object rhs);
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{

/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
Employee [] employees =
{
new Employee("Karli Watson",20000),
new Employee("Bill Gates",10000),
new Employee("Simon Robinson",25000),
new Employee("Mortimer",(decimal)1000000.38),
new Employee("Arabel Jones",23000),
new Employee("Avon from 'Blake's 7",50000)
};
CompareOp employeeCompareOp = new CompareOp(Employee.RhsIsGreate);
BubbleSorter.Sort(employees,employeeCompareOp);

for(int i=0;i<employees.Length;i++)
Console.WriteLine(employees[i].ToString());
Console.ReadLine();

}

}

public class Employee
{
private string name;
private decimal salary;


public Employee(string name,decimal salary)
{
this.name = name;
this.salary = salary;
}

public override string ToString()
{
return string.Format (name + ",{0:C}",salary);
}

public static bool RhsIsGreate(object lhs,object rhs)
{
Employee empLhs = (Employee)lhs;
Employee empRhs = (Employee)rhs;
return (empRhs.salary > empLhs.salary)?true:false;
}

}

public class BubbleSorter
{
static public void Sort(object [] sortArray, CompareOp gtMethod)
{
for (int i=0 ; i<sortArray.Length ; i++)
{
for (int j=i+1 ; j<sortArray.Length ; j++)
{
if (gtMethod(sortArray[j], sortArray[i]))
{
object temp = sortArray[i];
sortArray[i] = sortArray[j];
sortArray[j] = temp;
}
}
}
}
}
}

调试器的出错如下:
J:\c#exer\ConsoleApplication7\Class1.cs(67): 可访问性不一致: 参数类型“ConsoleApplication2.CompareOp”比方法“ConsoleApplication2.BubbleSorter.Sort(object[], ConsoleApplication2.CompareOp)”的访问性低

除了含main()的类,把其余的类前public:
却掉后便成功,!!

请问这是why?

vss工具具体在那?则麽用?


NoReady 2004-08-07
  • 打赏
  • 举报
回复
如何你用了关键字interface或abstract时,可能会出现你所说的问题。即一个子类继承抽像类或者实现,可访问性修饰符要一致
cuike519 2004-08-07
  • 打赏
  • 举报
回复
第一个不是问题,应该和pubilc没有关系!

后面的那个应该是VSS吧!
Edison621 2004-08-07
  • 打赏
  • 举报
回复
VSS用来控制版本,可以比较同一文件修改前后的代码的异同。

你把你的代码贴出来看看

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧