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

大家帮忙看一道C#的选择题下
下列说法哪个正确( )
 A. 不需要定义类,就能创建对象 
 B. 属性可以定义为抽象的
 C. 对象中必须有属性和方法
 D. 常量不能作为类成员
个人觉得选A,因为C#自身就有很多类,而且还有个object的根类,所以不用定义类就能创建对象,但是网上搜的答案有些人选C,定义类应该可以不用写属性和方法才对呀,,,,求解释,,谁会的到底选啥说一下

------解决方案--------------------
你自己没定义,C#框架,帮你定义好了啊。
也就是说,还是需要定义的。
------解决方案--------------------
B. 是对的,A. 按出题人的意思应该是错的
------解决方案--------------------
这题就是选 B 的

属性的实现,其实就是方法。方法当然是可以抽象的了
------解决方案--------------------
答案选B,在一个抽象类中是可以定义抽象属性的:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{
abstract class Class1
{
public abstract int aga
{
get;
set;
}
}
}
------解决方案--------------------
在C#中任何属性,变量都不能脱离类单独存在,所以A错误;类中可以没有方法和属性,所以B错误;常量也脱离不了类,所以D错误;
------解决方案--------------------
这个题很恶心,估计又是那本垃圾书上写的破玩意。

A,从开发人员的角度来说确实是对的,但是你的理解不对,因为这里的定义指的是声明对象之前定义类。而你说的那些类都是定义好的。这里面指的应该是匿名类型,对于使用者来说,声明对象之前不需要定义类。
但是从本质上来说,A又是错的,因为匿名类本质上也是先定义类再实例化对象,只不过定义类这个过程被C#语言给封装住了,属于语言层面的处理。

B,这个是对的,C#可以定义抽象属性,但是只能定义在抽象类中。

C,这句话说实话我没理解到底想表达的是什么意思。但是,可以这么想,C#所有类型都继承自object,而object的对象是有ToString(),GetType(),GetHashcode()等方法,所以,所有对象其实都有这几个方法。

D,放屁
------解决方案--------------------
探讨
D,放屁