转载:http://blog.csdn.net/seattle1215/article/details/6657814

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace Cash
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. (new Program()).run();
  12. // writeFee(calculate(dailyRate, workDay));
  13. // 对于非 static 方法,若想像上面这样直接调用则会报以下错
  14. // Error    1 An object reference is required
  15. // for the non-static field, method, or
  16. // property 'Cash.Program.readDouble(string)'
  17. printfOtherthing("static method is called.");        // static 方法可直接调用
  18. Program program = new Program();        // 非 static 方法需要先创建一个对象
  19. // 然后用对象调用
  20. program.printSomething("non-static menthod is called.");
  21. }
  22. public void run()
  23. {
  24. double dailyRate = readDouble("please enter your rate: ");
  25. int workDay = readInt("please enter your days of working: ");
  26. writeFee(calculate(dailyRate, workDay));
  27. }
  28. private void writeFee(double p)
  29. {
  30. Console.WriteLine("The consultant's fee is: {0}", p * 1.6);
  31. }
  32. private double calculate(double dailyRate, int workDay)
  33. {
  34. return dailyRate * workDay;
  35. }
  36. private int readInt(string p)
  37. {
  38. Console.WriteLine(p);
  39. string a = Console.ReadLine();          // 读取输入的字符(readline读取的
  40. // 字符都是 string 类型)
  41. return int.Parse(a);                    // 把 a 转换为 int 类型,并返回
  42. }
  43. private double readDouble(string p)
  44. {
  45. Console.WriteLine(p);
  46. string line = Console.ReadLine();
  47. return double.Parse(line);
  48. }
  49. private void printSomething(string a)       // non-static method
  50. {
  51. Console.WriteLine(a);
  52. }
  53. private static void printfOtherthing(string a)          // static method
  54. {
  55. Console.WriteLine(a);
  56. }
  57. }
  58. }
  59. 静态方法是无法直接调用非静态方法的,可以通过对象的引用来调用非静态方法,静态方法存储在内存中,而非静态方法是由对象的实例化来创建的,所以要通过对象的引用在静态方法中调用非静态方法,非静态方法是与对象实例化共生共亡

C# 静态方法调用非静态方法的更多相关文章

  1. PHP 类中静态方法调用非静态方法

    静态方法调用非静态方法: 在类中静态方法中,需要实例化对象,然后再调用类中的方法 非静态方法调用静态方法: 可以self 或者 类名加::的形式调用 如下面的案例: <?php class A{ ...

  2. java静态方法调用非静态方法

    我们都知道,静态static方法中不能调用非静态non-static方法,准确地说是不能直接调用non-static方法.但是可以通过将一个对象的引用传入static方法中,再去调用该对象的non-s ...

  3. java中静态方法和非静态方法调用的一点小困扰,已解决。

    public static void main(String[] args) { // TODO Auto-generated method stub SimpleGui1B gui=new Simp ...

  4. PHP中静态(static)调用非静态方法详解

    1.PHP中可以静态调用非静态方法么? 今天我被问到PHP中可不可以使用 className::methodName() 的方法来调用一个没有声明static的方法.在我的印象中,我好像是见过这种用法 ...

  5. PHP的Calling Scope(::调用非静态方法)

    今天在群里发现有人说,PHP可以用::调用非静态方法,一致没这么试过,发现了鸟哥的blog写了这个问题的具体解释,就搬过来: 这个问题乍看, 确实很容易让人迷惑, 但实际上, 造成这样的误解的根本原因 ...

  6. java中静态方法中为什么不能使用this、super和直接调用非静态方法

    这个要从java的内存机制去分析,首先当你New 一个对象的时候,并不是先在堆中为对象开辟内存空间,而是先将类中的静态方法(带有static修饰的静态函数)的代码加载到一个叫做方法区的地方,然后再在堆 ...

  7. php静态调用非静态方法

    <?php /** * php静态调用非静态方法 * author: 百里 * Date: 2019/7/18 * Time: 17:28 */ function dump(...$var) { ...

  8. JAVA Main方法中调用非静态方法

    在JAVA中静态方法中只能调用其他,静态方法.main方法都是静态方法,如果想调用其它的方法,要么只能是其它的静态方法.还有一种方法就是将当前类实例化在调用它的非静态方法 public class t ...

  9. PHP中静态(static)调用非静态方法详解--调用!!!

    来源:https://www.cnblogs.com/yolo-bean/p/7739265.html 这里分析了php面向对象中static静态属性和静态方法的调用.关于它们的调用(能不能调用,怎么 ...

随机推荐

  1. SpringCloud 入门知识篇

    SpringCloud 入门 springcloud 学习 7天学会springcloud 教程 https://www.cnblogs.com/skyblog/category/738524.htm ...

  2. mac 下 git log 退出方法

    英文状态下按 Q (大小写无论)即可.

  3. Mysql 获取成绩排序后的名次

    其实就是输出mysql的排序后的行号   RT:获取单个用户的成绩在所有用户成绩中的排名   可以分两步: 1.查出所有用户和他们的成绩排名 ) as rowNo from t_user, () ) ...

  4. sqli-labs(20)

    0X01 试探一下 这是登录成功的页面 这里题目高速我们是基于cookie的注入 0X01抓包试探 这里登陆的时候有两个包 我们要含有cookie的那个包 0X02试探判断是否cookie存在注入 C ...

  5. mysql语句错误

    select * from order where id = 1; 同学问我这句话有什么问题,乍一看真看不出毛病,后来发现order是mysql关键字,这样写是不对的,所以要加一个双引号才会更好一点 ...

  6. lr参数与C语言函数参数的区别

    C变量不能再lr函数中使用: c变量必须定义在lr函数之前: LR参数可以在LR函数中直接当做字符串使用. LR参数是lr自己封装的一个钟对象, LR参数的表达方式:{ParamName}

  7. java中的char,short,int,long占几个字节

    1:“字节”是byte,“位”是bit : 2: 1 byte = 8 bit : char 在java中是2个字节.java采用unicode,2个字节(16位)来表示一个字符. short 2个字 ...

  8. 字符串在PHP比较运算中的变化

    由于PHP的弱类型性质,你可以做一些奇怪的事情,其中​​一些是好的,其中一些将使你掉到坑里面去.比如: ;   if ( $a == true && $b == false & ...

  9. JavaScript中this的一些坑

    我们经常在回调函数里面会遇到一些坑: var obj = { name: 'qiutc', foo: function() { console.log(this); }, foo2: function ...

  10. OpenStack Nova 高性能虚拟机之 CPU 绑定

    目录 文章目录 目录 前文列表 KVM KVM 的功能列表 KVM 工具集 KVM 虚拟机的本质是什么 vCPU 的调度与性能问题 Nova 支持的 vCPU 绑定 vcpu\_pin\_set 配置 ...