请教一下,我这样理解对不对

zjqxwgm 2018-03-10 04:52:51
public static string GetCon()
{
return GetCon("connectionstring");
/*调用web.config中的数据连接*/
}

public static string GetCon(string conn)
/*该函数为继承函数,conn的值继承上函数的返回值connectionstring*/
{
object obj2 = HttpContext.Current.Cache[conn];
/*HttpContext.Current.Cache是将conn的值封装到HttpContext类中,存储在内存中,并赋值给obj2*/
string str = "";
if (obj2 == null)
{
str = WebConfigurationManager.ConnectionStrings[conn].ToString();
/*WebConfigurationManager.ConnectionStrings
命名空间:System.Web.Configuration
程序集:System.Web(位于System.Web.dll)*/
//WebConfigurationManager是处理与Web应用程序相关的配置文件的首选方法。
HttpContext.Current.Cache.Insert(conn, str);
//将str加入到内存中
obj2 = str;
}
//如果obj2的值为空,通过WebConfigurationManager获取数据库连接的方法赋值给str,并把str存入内存,赋值给obj2。
return obj2.ToString();
}


我怎么感觉这两个是重复的。


顺便请教一下各位大神,是怎么学习的
...全文
537 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 版主 2018-03-13
  • 打赏
  • 举报
回复
1 GetCon()和GetCon(string conn) 是方法的重载 2 GetCon()内部实现的是读取指定字符串 GetCon(string conn) 是读取的传递进来的字符串。
大鱼> 2018-03-13
  • 打赏
  • 举报
回复
这是简单的方法重载,你如果使用方法二则需要传入数据库链接参数即可
zjqxwgm 2018-03-13
  • 打赏
  • 举报
回复
第一个方法删除,就无法运行了
就是个菜鸟 2018-03-13
  • 打赏
  • 举报
回复
这两个方法是重载,你在调用这个方法的时候,就会显示2个重载,第一个方法直接删除就可以。
zjqxwgm 2018-03-10
  • 打赏
  • 举报
回复
我不知道这两个应该是怎么称呼的,我看你们都称呼它们为方法。 在我的理解中是,第二个方法是套用第一个方法的,没有第一个方法的话,第二个方法也执行不下去。 在第二个方法中已经把数据连接的方式赋值给obj2,那obj2肯定不为空,后面为什么还要再做判断呢?
atmo 2018-03-10
  • 打赏
  • 举报
回复
public static string GetCon()
    {
        return GetCon("connectionstring");
        /*调用web.config中的数据连接*/
    }
//方法名相同 参数类型或参数数量不同 叫方法的重载 也就是说 你可以 GetCon()执行上面的代码,如果GetCon("xxxx"),则会执行下面的代码
    public static string GetCon(string conn)
       
    {
        object obj2 = HttpContext.Current.Cache[conn];
        /*HttpContext.Current.Cache是将conn的值封装到HttpContext类中,存储在内存中,并赋值给obj2*/
        string str = "";
        if (obj2 == null)
        {
            str = WebConfigurationManager.ConnectionStrings[conn].ToString();
            /*WebConfigurationManager.ConnectionStrings
             命名空间:System.Web.Configuration
             程序集:System.Web(位于System.Web.dll)*/
            //WebConfigurationManager是处理与Web应用程序相关的配置文件的首选方法。
            HttpContext.Current.Cache.Insert(conn, str);
            //将str加入到内存中
            obj2 = str;
        }
        //如果obj2的值为空,通过WebConfigurationManager获取数据库连接的方法赋值给str,并把str存入内存,赋值给obj2。
        return obj2.ToString();
    }
  • 打赏
  • 举报
回复
在比较高版本c#语言的源代码中,这个可能更多时候这样写
public static string GetCon(string conn = "connectionstring")
而删除第一个方法。实际结果是一样的,并且编译器其实也是生成这样两个方法,然后第1个函数委派调用第2个方法。 从定义上看,这两个函数很显然是不同的。第一个是无参数,那么它执行你们默认约定的行为(比如说等同于输入某个参数)。而第二个要求传入参数,你就可以指定更多更深层次的既定操作。
  • 打赏
  • 举报
回复
参数签名都不同,怎么会是重复的?如果是重复的,是不会编译通过的。 方法不仅仅有名称、返回值,还有参数的区别。同名但是参数不同的方法,你要学会。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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