问题一 :是否可以从一个static方法内部发出对非static方法的调用?

不行,
可以这样理解
static修饰的方法可以直接用类名调用
非static修饰的方法必须用类new出对象才能调用
当我们用类名直接调用时,可能这个类的对象并没有new。
如果这时候static方法里调用非static的方法就会出现空指针异常,
当然这种错误编译时就不会通过。

错误代码演示:

  class Program
{ public int fact(int n)
{
if (n <= )
return ;
else
return n * fact(n-);
} static void Main(string[] args)
{
//利用递归来计算阶乘
fact //看到了吗?fact是根本打不出来的。 }
}

正确代码演示:

  class Program
{ static int fact(int n)
{
if (n <= )
return ;
else
return n * fact(n-);
} static void Main(string[] args)
{
//利用递归来计算阶乘
Console.WriteLine(fact()); }
}

问题二:继承接口之后必须要全部继承接口里面的内容吗?

是的,必须全部继承。

我写一个接口:

 namespace 结构测试
{
interface Interface1
{
void first();
void second();
}
}

我在控制台去实现这个接口的第一个方法,看看情况:

 namespace 结构测试
{
class Program:Interface1
{
static void Main(string[] args)
{ } public void first()
{
Console.WriteLine("我只想实现这一个方法");
} }
}

运行,结果报错:

问题三:抽象类到底是怎么用的?

为什么要写抽象类?所谓抽象不就是把某些物体的共同特点集合起来吗?比如你可以吃饭,睡觉,学习。你的同学也可以吃饭,睡觉,学习。好了,你们都具有这些共同的特征,不只是你们,所有的人都这样,这就可以抽象出一个类--Person。那么抽象类该怎么用呢?

抽象类Class1:

 namespace 抽象类
{
abstract class Class1
{
public abstract void start();
public void update()
{
Console.WriteLine("我是抽象类里面的不抽象方法");
}
}
}

Class1这个抽象的类我给他写了两个方法,一个是抽象方法start,一个是非抽象方法update.注意到了没,抽象方法是不允许有方法体的。

下面我们再来写一个普通的类Class2来继承抽象类Class1:

 namespace 抽象类
{
class Class2:Class1
{
public override void start()
{
Console.WriteLine("我继承了抽象方法");
}
public void strt()
{
update();
}
}
}

可以看到,抽象类Class1里面的抽象方法start被继承并重构了方法体,而且非抽象方法update也可以直接继承。

下面来控制台应用程序:

 namespace 抽象类
{
class Program
{
static void Main(string[] args)
{
Class2 jj =new Class2();
jj.start();
jj.strt();
}
}
}

普通类Class2实例化了一个对象jj,然后jj可以调用start方法和strt方法。

注意事项:抽象类不能实例化。抽象方法不能有方法体。

问题四:string类型创建的字符串的内容是不可变的

先上图,咱们看图说话。

比如我最初定义了一个字符串s,初始值为 "蜀云泉" 。

 string s = "蜀云泉";

我们可以看到这个字符串s的内容是存放在堆里面的,而s存放在栈里面只是起一个引用的作用。可以看到我在图上s画了一条虚线指向 “蜀云泉” 。现在我执行新的操作:

 s = s + "喜欢写博客";

好了,s并没有直接在蜀云泉那块内存增加我写的字符串,而是新开辟了一块内存去重新存储。这时s指向了那块新的存储空间。而那个旧的存储空间“蜀云泉”过一段时间之后系统会自动把它清理掉。

问题五:字符串怎么写成多行?

有时候字符串实在是太长了,全部写在一行吧,既不美观也不方便查看,所以怎么写成多行呢?有两种方法:

方法一:

string Str="字符串1"+
"字符串2";

方法二:

string Str=@"字符串1
字符串2";

问题6:输入日期怎么判断是周几?

  int days = (int)Convert.ToDateTime("时间").DayOfWeek;

周日是0,其它的数字对应。

关于C#的一些小知识的更多相关文章

  1. 蓝牙Bluetooth技术小知识

    蓝牙Bluetooth技术以及广泛的应用于各种设备,并将继续在物联网IoT领域担任重要角色.下面搜集整理了一些关于蓝牙技术的小知识,以备参考. 蓝牙Bluetooth技术始创于1994年,其名字来源于 ...

  2. HTML+CSS中的一些小知识

    今天分享一些HTML.CSS的小知识,希望能够对大家有所帮助! 1.解决网页乱码的问题:最重要的是要保证各个环节的字符编码一致! (1)编辑器的编辑环境的字符集(默认字符集):Crtl+U 常见的编码 ...

  3. iOS APP开发的小知识(分享)

          亿合科技小编发现从2007年第一款智能手机横空出世,由此开启了人们的移动智能时代.我们从一开始对APP的陌生,到现在的爱不释手,可见APP开发的出现对我们的生活改变有多巨大.而iOS AP ...

  4. Unix系统小知识(转)

    Unix操作系统的小知识 2.VI添加行号/翻页/清屏 .在对话模式时(即输完Esc再输入: ),输入“:set number”可以将编辑的文本加上行号.跟玩俄罗斯方块一样方便的上下左右移动箭头的快捷 ...

  5. salesforce 零基础开发入门学习(十)IDE便捷小知识

    在这里介绍两个IDE的便捷开发的小知识. 一) 本地调试 由于salesforce代码只能提交以后才能调试,所以很多时候调试代码很麻烦.新版增加了一个特性:即可以在本地调试相关的代码或者查看相关代码运 ...

  6. Jquery:小知识;

    Jquery:小知识: jQuery学习笔记(二):this相关问题及选择器   上一节的遗留问题,关于this的相关问题,先来解决一下. this的相关问题 this指代的是什么 这个应该是比较好理 ...

  7. HTML小知识---Label

    今天知道了一个html小知识: <input type="checkbox" id="chkVersion" />                 ...

  8. Unicode和汉字编码小知识

    Unicode和汉字编码小知识 将汉字进行UNICODE编码,如:“王”编码后就成了“\王”,UNICODE字符以\u开始,后面有4个数字或者字母,所有字符都是16进制的数字,每两位表示的256以内的 ...

  9. Java异常的一个小知识

    有以下两个代码: package com.lk.A; public class Test3 { public static void main(String[] args) { try { int a ...

  10. 12个你未必知道的CSS小知识

    虽然CSS并不是一种很复杂的技术,但就算你是一个使用CSS多年的高手,仍然会有很多CSS用法/属性/属性值你从来没使用过,甚至从来没听说过. 1.CSS的color属性并非只能用于文本显示 对于CSS ...

随机推荐

  1. 小学四则运算APP 第一个冲刺 第七天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第一次冲刺阶段时间:11.17~11.27 本次发布的是完成的功能一: 程序代码: MainActivity代码: import andr ...

  2. HDU 2052 Picture

    http://acm.hdu.edu.cn/showproblem.php?pid=2052 Problem Description Give you the width and height of ...

  3. HTML 5 placeHolder

    <html> <body> <input type="text" id="idNum" placeholder="pla ...

  4. 一本通1585【例 1】Amount of Degrees

    1585: [例 1]Amount of Degrees 时间限制: 1000 ms         内存限制: 524288 KB 题目描述 原题来自:NEERC 2000 Central Subr ...

  5. hdu1285

    解题思路:拓扑排序+优先队列,每次找入度为零时的点的时候且值最小的...我觉得题目有点问题,刚开始写的时候,以为样例的答案是1 4 2 3,毕竟1和4没输过啊...结果去看了样例一眼,傻了. #inc ...

  6. [代码]--python爬虫联系--爬取成语

    闲来无事,玩了个成语接龙,于是就想用python爬取下成语网站上的成语,直接上代码: #coding=utf-8 import requests from bs4 import BeautifulSo ...

  7. BZOJ3453 XLkxc(拉格朗日插值)

    显然f(i)是一个k+2项式,g(x)是f(i)的前缀和,则显然其是k+3项式,插值即可.最后要求的东西大胆猜想是个k+4项式继续插值就做完了.注意2p>maxint…… #include< ...

  8. bzoj 3295 动态逆序对 (三维偏序,CDQ+树状数组)

    链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3295 思路: 可以将这道题看成倒着插入,这样就可以转化成求逆序对数,用CDQ分治降维,正反用 ...

  9. 【Luogu4931】情侣?给我烧了! 加强版(组合计数)

    [Luogu4931]情侣?给我烧了! 加强版(组合计数) 题面 洛谷 题解 戳这里 忽然发现我自己推的方法是做这题的,也许后面写的那个才是做原题的QwQ. #include<iostream& ...

  10. 【BZOJ4821】[SDOI2017]相关分析(线段树)

    [BZOJ4821][SDOI2017]相关分析(线段树) 题面 BZOJ 洛谷 题解 看看询问要求的东西是什么.把所有的括号拆开,不难发现要求的就是\(\sum x,\sum y,\sum xy,\ ...