C# 静态方法调用非静态方法
转载:http://blog.csdn.net/seattle1215/article/details/6657814
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace Cash
- {
- class Program
- {
- static void Main(string[] args)
- {
- (new Program()).run();
- // writeFee(calculate(dailyRate, workDay));
- // 对于非 static 方法,若想像上面这样直接调用则会报以下错
- // Error 1 An object reference is required
- // for the non-static field, method, or
- // property 'Cash.Program.readDouble(string)'
- printfOtherthing("static method is called."); // static 方法可直接调用
- Program program = new Program(); // 非 static 方法需要先创建一个对象
- // 然后用对象调用
- program.printSomething("non-static menthod is called.");
- }
- public void run()
- {
- double dailyRate = readDouble("please enter your rate: ");
- int workDay = readInt("please enter your days of working: ");
- writeFee(calculate(dailyRate, workDay));
- }
- private void writeFee(double p)
- {
- Console.WriteLine("The consultant's fee is: {0}", p * 1.6);
- }
- private double calculate(double dailyRate, int workDay)
- {
- return dailyRate * workDay;
- }
- private int readInt(string p)
- {
- Console.WriteLine(p);
- string a = Console.ReadLine(); // 读取输入的字符(readline读取的
- // 字符都是 string 类型)
- return int.Parse(a); // 把 a 转换为 int 类型,并返回
- }
- private double readDouble(string p)
- {
- Console.WriteLine(p);
- string line = Console.ReadLine();
- return double.Parse(line);
- }
- private void printSomething(string a) // non-static method
- {
- Console.WriteLine(a);
- }
- private static void printfOtherthing(string a) // static method
- {
- Console.WriteLine(a);
- }
- }
- }
- 静态方法是无法直接调用非静态方法的,可以通过对象的引用来调用非静态方法,静态方法存储在内存中,而非静态方法是由对象的实例化来创建的,所以要通过对象的引用在静态方法中调用非静态方法,非静态方法是与对象实例化共生共亡
C# 静态方法调用非静态方法的更多相关文章
- PHP 类中静态方法调用非静态方法
静态方法调用非静态方法: 在类中静态方法中,需要实例化对象,然后再调用类中的方法 非静态方法调用静态方法: 可以self 或者 类名加::的形式调用 如下面的案例: <?php class A{ ...
- java静态方法调用非静态方法
我们都知道,静态static方法中不能调用非静态non-static方法,准确地说是不能直接调用non-static方法.但是可以通过将一个对象的引用传入static方法中,再去调用该对象的non-s ...
- java中静态方法和非静态方法调用的一点小困扰,已解决。
public static void main(String[] args) { // TODO Auto-generated method stub SimpleGui1B gui=new Simp ...
- PHP中静态(static)调用非静态方法详解
1.PHP中可以静态调用非静态方法么? 今天我被问到PHP中可不可以使用 className::methodName() 的方法来调用一个没有声明static的方法.在我的印象中,我好像是见过这种用法 ...
- PHP的Calling Scope(::调用非静态方法)
今天在群里发现有人说,PHP可以用::调用非静态方法,一致没这么试过,发现了鸟哥的blog写了这个问题的具体解释,就搬过来: 这个问题乍看, 确实很容易让人迷惑, 但实际上, 造成这样的误解的根本原因 ...
- java中静态方法中为什么不能使用this、super和直接调用非静态方法
这个要从java的内存机制去分析,首先当你New 一个对象的时候,并不是先在堆中为对象开辟内存空间,而是先将类中的静态方法(带有static修饰的静态函数)的代码加载到一个叫做方法区的地方,然后再在堆 ...
- php静态调用非静态方法
<?php /** * php静态调用非静态方法 * author: 百里 * Date: 2019/7/18 * Time: 17:28 */ function dump(...$var) { ...
- JAVA Main方法中调用非静态方法
在JAVA中静态方法中只能调用其他,静态方法.main方法都是静态方法,如果想调用其它的方法,要么只能是其它的静态方法.还有一种方法就是将当前类实例化在调用它的非静态方法 public class t ...
- PHP中静态(static)调用非静态方法详解--调用!!!
来源:https://www.cnblogs.com/yolo-bean/p/7739265.html 这里分析了php面向对象中static静态属性和静态方法的调用.关于它们的调用(能不能调用,怎么 ...
随机推荐
- codevs 1079 回家x
1079 回家 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description 现在是晚餐时间,而母牛们在外面分散的牧场中. 农民约翰 ...
- Java虚拟机之JVM系统和内存模型
1.类加载子系统 负责从文件系统或者网络中加载Class信息,加载的信息存放在一块称之为方法区的内存空间里. 2.方法区 存放类信息.常量信息.常量池信息.包括字符串字面量和数字常量等,方法区的大小决 ...
- vue之Object.defineProperty()
了解Object.defineProerty()方法 关于Object.defineProperty()方法的解释,理解Object.defineProperty的作用 这篇文章做了很详细的概述 关于 ...
- java-String与Integer的相互转化
一.Integer转String //方法一:Integer类的静态方法toString() Integer a = 2; String str = Integer.toString(a) //方 ...
- 好书推荐:OpenSuse
现在正值暑期,有大把的空闲时间,觉得有必要好好琢磨琢磨,进一步学习认识网站相关的东东. 之前,出于某种考虑,购买了一年的搬瓦工虚拟主机(vps),每月有500G的流量.单纯使用Shadowsocks, ...
- Deepin 系统下设置Apache虚拟主机站点
1,在 var/www/html 文件夹中创建一个文件夹,命名为 a ,用来作为我们的PHP项目文件夹. 2,找到 etc/apache2/sites-available 文件夹,在文件夹中创建一个站 ...
- AAAI 2018 分析
AAAI 2018 分析 word embedding Learning Sentiment-Specific Word Embedding via Global Sentiment Represen ...
- VS2008重置默认环境
Microsoft Visual Studio 2008 -> Visual Studio Tools -> Visual Studio 2008命令提示 进入Common7\IDE,然后 ...
- ES6中变量的解构赋值
1.数组的解构赋值 基本用法 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring). 输出: 上面代码表示,可以从数组中提取值,按照对应位置,对变 ...
- vue-loader分析
分析一下Vue2.0中的vue-loader是如何处理.vue单文件组件的: 1.vueLoaderplugin 作用是 找到.vue,.vue.html的rules然后在他们的rule里添加 pit ...