标题:base关键字
只看楼主
rgbtdkjcel
Rank: 1
等 级:新手上路
帖 子:294
专家分:0
注 册:2007-3-26
结帖率:50%
 问题点数:0 回复次数:10 
base关键字
using System;
namespace test
{
class text
{
private static int r=10;
public int new1(int a,int b)
{
return a+b;
}
public static int attribute1
{
get{ return r; }
set{ r=value; }
}
}
class newtext:text
{
private int s;
//private int u;

public int attribute
{
get{ return s;}
set{s=value;}
}
public static void Main()
{
newtext ucdos=new newtext();
// Console.WriteLine(newtext.qiu);

Console.WriteLine(base.new1(4,6));
}
}
}



为什么通过base来调用基类中的方法会出错呢???
搜索更多相关主题的帖子: base 关键 
2007-09-24 23:06
卡卡艾
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:672
专家分:0
注 册:2007-4-3
得分:0 
提示什么错误?
这样调用是没有错的,.
可以用base.方法名()来调用基类中的方法.

革命尚未成功,同志仍需努力-----+++
2007-09-25 08:30
crazymk
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2007-8-30
得分:0 
public static void Main()
{
newtext ucdos=new newtext();
// Console.WriteLine(newtext.qiu);

Console.WriteLine(base.new1(4,6));
}
這是不對的。Main方法並不是屬於newtext的方法。
把這句Console.WriteLine(base.new1(4,6));
放到newtext 類的一個方法中。然後在Main中調用哪個方法。

すばらしいコードを書き出すのは楽しい事です
2007-09-25 09:13
rgbtdkjcel
Rank: 1
等 级:新手上路
帖 子:294
专家分:0
注 册:2007-3-26
得分:0 
base.cs(32,21): error CS1511: 关键字“base”在静态方法中不可用


这是编译该文件的错误提示!!!

c sharp初学者
2007-09-25 10:46
crazymk
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2007-8-30
得分:0 
照我說的做。妳的基礎知識還需要加強阿

すばらしいコードを書き出すのは楽しい事です
2007-09-25 11:23
rgbtdkjcel
Rank: 1
等 级:新手上路
帖 子:294
专家分:0
注 册:2007-3-26
得分:0 
呵呵!!正在巩固基础知识.


c sharp初学者
2007-09-25 16:53
andey
Rank: 2
等 级:新手上路
威 望:4
帖 子:938
专家分:0
注 册:2007-7-18
得分:0 
看来基础知识真的很重要...
我都没用过base呢!!!郁闷...
这么多东西需要学习啊

msdn == 葵花宝典!!!
QQ:122768959
2007-09-25 18:47
jasonxie
Rank: 1
等 级:新手上路
威 望:2
帖 子:225
专家分:0
注 册:2007-3-19
得分:0 
关于base关键字,我想到了this关键字。我想请问各位在派生类构造函数调用基类构造函数的时候,它们2中者的区别是什么。书上说的是:this关键字指定在调用指定的构造函数前,。NET实例化过程对当前类使用非默认的构造函数。

你是我心内的一首歌,不要只是个过客;在我生命留下一首歌,无论结局会如何.
2007-09-26 08:59
jxnuwy04
Rank: 2
等 级:新手上路
威 望:4
帖 子:768
专家分:0
注 册:2006-9-15
得分:0 

摘自MSDN的原话:
---------------------------------------------------------------
this 关键字将引用类的当前实例。静态成员函数没有 this 指针。
this 关键字可用于从构造函数、实例方法和实例访问器中访问成员。
在静态方法、静态属性访问器或字段声明的变量初始值设定项中引用 this 是错误的。

base 关键字用于从派生类中访问基类的成员:
调用基类上已被其他方法重写的方法。
指定创建派生类实例时应调用的基类构造函数。
基类访问只能在构造函数、实例方法或实例属性访问器中进行。
从静态方法中使用 base 关键字是错误的。
----------------------------------------------------------------
下面有两个实例:
this:
在本例中,this 用于限定 Employee 类成员 name 和 alias,它们都被相似的名称隐藏。this 还用于将对象传递到属于其他类的方法 CalcTax。

// keywords_this.cs
// this example
using System;
public class Employee
{
public string name;
public string alias;
public decimal salary = 3000.00m;

// Constructor:
public Employee(string name, string alias)
{
// Use this to qualify the fields, name and alias:
this.name = name;
this.alias = alias;
}

// Printing method:
public void printEmployee()
{
Console.WriteLine("Name: {0}\nAlias: {1}", name, alias);
// Passing the object to the CalcTax method by using this:
Console.WriteLine("Taxes: {0:C}", Tax.CalcTax(this));
}
}
public class Tax
{
public static decimal CalcTax(Employee E)
{
return (0.08m*(E.salary));
}
}

public class MainClass
{
public static void Main()
{
// Create objects:
Employee E1 = new Employee ("John M. Trainer", "jtrainer");

// Display results:
E1.printEmployee();
}
}
输出
Name: John M. Trainer
Alias: jtrainer
Taxes: $240.00



base:
在本例中,基类 Person 和派生类 Employee 都有一个名为 Getinfo 的方法。通过使用 base 关键字,可以从派生类中调用基类上的 Getinfo 方法。

// keywords_base.cs
// Accessing base class members
using System;
public class Person
{
protected string ssn = "444-55-6666";
protected string name = "John L. Malgraine";

public virtual void GetInfo()
{
Console.WriteLine("Name: {0}", name);
Console.WriteLine("SSN: {0}", ssn);
}
}
class Employee: Person
{
public string id = "ABC567EFG";

public override void GetInfo()
{
// Calling the base class GetInfo method:
base.GetInfo();
Console.WriteLine("Employee ID: {0}", id);
}
}

class TestClass {
public static void Main()
{
Employee E = new Employee();
E.GetInfo();
}
}
输出
Name: John L. Malgraine
SSN: 444-55-6666
Employee ID: ABC567EFG

建议多看看MSDN,真的是好东西!


------------------不为别的,就为你,我的理想!-----------------
2007-09-26 09:17
jasonxie
Rank: 1
等 级:新手上路
威 望:2
帖 子:225
专家分:0
注 册:2007-3-19
得分:0 

呵呵,3Q,很详细。以后多看看MSDN老~~~~~


你是我心内的一首歌,不要只是个过客;在我生命留下一首歌,无论结局会如何.
2007-09-26 09:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-172631-1-1.html




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

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