日期:2014-05-18  浏览次数:20620 次

成员名称不能与它们的封闭类型相同
下面是一个类定义,运行中出错: 成员名称不能与它们的封闭类型相同

我在网上搜了,搜到还不少,但是看了又看,没明白他们说的什么意思,难道类的构造函数不应该和类各一样么?
倒底是说谁和谁不能相同啊?
请朋友们直接给我改下好么?
 
using System;
using System.Web;
namespace ShowMessage
{
  /// <summary>
  /// Msg 的摘要说明。
  /// </summary>
  public class ShowMessage
  {
  public void ShowMessage()
  {
  //
  // TODO: 在此处添加构造函数逻辑
  //
  }
  public static void ShowMessage(string strMsg)
  {
  System.Web.HttpContext.Current.Response.Write("<Script Language='JavaScript'>window.alert('" + strMsg + "');</script>");
  }
  public static void ShowMessage(System.Web.UI.Page page, string strMsg)
  {
  page.Response.Write("<Script Language='JavaScript'>window.alert('" + strMsg + "');</script>");
  }
  public static void ShowMessage(string strMsg, string Url)
  {
  System.Web.HttpContext.Current.Response.Write("<Script Language='JavaScript'>window.alert('" + strMsg + "');window.location.href ='" + Url + "'</script>");
  }
  public static void ShowMessage(System.Web.UI.Page page, string strMsg, string Url)
  {
  page.Response.Write("<Script Language='JavaScript'>window.alert('" + strMsg + "');window.location.href ='" + Url + "'</script>");
  }
  public static void ShowConfirm(string strMsg, string strUrl_Yes, string strUrl_No)
  {
  System.Web.HttpContext.Current.Response.Write("<Script Language='JavaScript'>if ( window.confirm('" + strMsg + "')) { window.location.href='" + strUrl_Yes +
  "' } else {window.location.href='" + strUrl_No + "' };</script>");
  }
  }
}


------解决方案--------------------
不要把命名空间、类名、方法名都搞成一样的名字。

换一个名字看看。
------解决方案--------------------
void的方法,如果不写return,其实编译器会在你代码最后自动加上return;的。
------解决方案--------------------
而且也不是写不写的问题。

关键构造函数在对象创建的时候被调用,所以才没有返回值。

尤其是你写成静态构造函数,静态构造函数根本是不能被调用的,它只能由CLR调用。