| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1353 人关注过本帖
标题:C#类的一个问题
只看楼主 加入收藏
snowka
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-6-27
收藏
 问题点数:0 回复次数:11 
C#类的一个问题
如果有两个类 A,B:
public class A
{
  protected SqlConnection objSqlConnection;
  public A
  {
    this.objSqlConnection = new SqlConnection("server=.;database=database_name;uid=sa;pwd=;");
  }
  // do something ...
}

public class B : A
{
  //在这种情况下 base.objSqlConnection.open();可以用
  base.objSqlConnection.open();
}

//但是下面的情况不能用,为什么?
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

如果有两个类 A,B,C:
public class A
{
  protected SqlConnection objSqlConnection;
  // do something ...
}

public class C
{
  A a = new A();
// a.objSqlConnection.open();不可用
  a.objSqlConnection.open();
}
public class B : A
{
  //在这种情况下 base.objSqlConnection.open();可以用
  base.objSqlConnection.open();
}
搜索更多相关主题的帖子: something database public server 
2008-06-27 15:41
tomtory
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:705
专家分:0
注 册:2008-6-12
收藏
得分:0 
public class A
{
  protected SqlConnection objSqlConnection;
  public A
  {
    this.objSqlConnection = new SqlConnection("server=.;database=database_name;uid=sa;pwd=;");
  }
  // do something ...
}


这是构造函数耶  老大  当然要用base来调用的哦
2008-06-27 15:50
达文西
Rank: 1
等 级:新手上路
威 望:1
帖 子:117
专家分:0
注 册:2007-8-4
收藏
得分:0 
C那个是实例化的  为什么不能用啊 高人解释一下
2008-06-27 15:55
达文西
Rank: 1
等 级:新手上路
威 望:1
帖 子:117
专家分:0
注 册:2007-8-4
收藏
得分:0 
这怎么可能是构造函数啊? 晕死
2008-06-27 15:56
kevintang
Rank: 4
等 级:业余侠客
威 望:9
帖 子:799
专家分:236
注 册:2008-2-14
收藏
得分:0 
2008-06-27 16:00
visolleon
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:71
专家分:182
注 册:2007-1-16
收藏
得分:0 
跟base没关系!
你看看你的这句:
protected SqlConnection objSqlConnection
objSqlConnection是protected类型

而C类:
public class C
{
  A a = new A();
// a.objSqlConnection.open();不可用
  a.objSqlConnection.open();
}

C类又不是派生类,请问如果访问A类的protected成员?

2008-06-27 16:28
seiya027848
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2008-6-27
收藏
得分:0 
这主要是跟objSqlConnection这个成员在类中的修饰符有关。
protected->从字面上看,表示该成员是被保护的。就是说他只能被该类(注意:不是对象)中的其他成员以及它的子类中的成员访问访问。
你在类C中创建了类A的实例(对象),因而不能被使用。
参考:http://msdn.
2008-06-27 16:50
达文西
Rank: 1
等 级:新手上路
威 望:1
帖 子:117
专家分:0
注 册:2007-8-4
收藏
得分:0 
靠了  我怎么没有看出来啊  C类不是派生类
2008-06-27 17:00
yuehuolong
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-6-27
收藏
得分:0 
protected的意思就是只能自己和他的自类调用,打个比方,A有一种秘方,只传后代不传外人.B是A的儿子,他肯定能知道这个秘方,C是外人,和A,B没关系,所以C无法看到这个秘方.
2008-06-27 17:11
yuehuolong
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-6-27
收藏
得分:0 
顺便说一下,构造函数需要加括号的,没加括号语法都是错的
2008-06-27 17:14
快速回复:C#类的一个问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030360 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved