声明方法的语法

成员访问修饰符 返回值 方法名称(参数列表)

{
    // 方法的内容
}

// 不带参数的方法

using System;
namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Now time is {0}", CurrentTime());
        }
        public static DateTime CurrentTime()  // DataTime 是一种数据类型
        {
           return DateTime.Now;  // 这里Now是属性,因为不带括号,如果带括号,则为方法
        }
    }
}

// 带有参数的方法

using System;
namespace test
{
    class Method
    {
        static void Main(string[] args)
        {
            string tempName = ""; //初始化
            while (tempName != "end")
            {
                tempName = Console.ReadLine();
                MyMehod(tempName);
            }
        }
        public static void MyMehod(string strName)
        {
            Console.WriteLine("The name is " + strName + "/n");  // 为了显示清楚,is后面有空格
        }
    }
}

共享变量
如果两个以上的方法要共享一个变量,则要将此变量声明在类(Class)阶层。

namespace test
{
    class vary
    {
        class Share
        {
            public static int i=0;
            public void Getvalue()
            {
                i=i+1;
            }
        }
        static void Main()
        {
            Share sh1 = new Share();
            sh1.Getvalue();
            Share sh2 = new Share();
            sh2.Getvalue();
            Console.WriteLine(Share.i);  // 访问静态变量的名称,可用类名.变量名形式。
        }
    }
}

方法的参数传递机制
1 值参数(Vaule Parameter)
   方法名称(参数类型 参数名称[,参数类型 参数名称])
2  引用参数(Reference Parameter)
  方法名称(ref 参数类型 参数名称[, ref 参数类型 参数名称])
3  输出参数(Output Parameter)
   方法名称(out 参数类型 参数名称[, out 参数类型 参数名称])

using System;
namespace Method
{
    class MyMethod
    {
        public static void ValueMethod(int i)
        {
            i++;
        }
        public static void ReferenceMethod(ref int i)
        {
            i++;
        }
        public static void OutputMethod(out int i)
        {
            i = 0;  //在输出参数调用,变量必须赋初值
            i++;
        }
        static void Main()
        {
            int i = 0;
            ValueMethod(i);
            Console.WriteLine("i=" + i);
            int j = 0;
            ReferenceMethod(ref j);   // 参数必须写上ref
            Console.WriteLine("j=" + j);
            int k = 0;
            OutputMethod(out k);
            Console.WriteLine("k=" + k);
        }
    }  
}

//用数组来实现,思考运行结果为什么会变化

using System;
namespace MyMethod
{
    class Method
    {
        static void PrintArray(int[] arr)
        {
            for (int i = 0; i < arr.Length; i++)
            {
                arr[i] = i;
            }
        }

static void Main()
        {
            int[] arr1 ={ 10, 20, 30 };
            PrintArray(arr1);
            foreach (int i in arr1)
            {
                Console.Write(i + "  ");
            }
            Console.WriteLine();
        }
    }
}

//字符串传递, 不明白为什么运行结果没有变化

using System;
namespace MyMethod
{
    class Method
    {
        static void PrintStr(string str)
        {
            str = "123";
        }

static void Main()
        {
            string s = "789";
            PrintStr(s);
            Console.WriteLine(s);
        }
    }
}

5.6. 方法(1) (2)相关推荐

  1. 在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 11g 集群

    作者:Jeffrey Hunter 了解如何以低于 2,700 美元的费用在 Oracle Enterprise Linux 上安装并配置 Oracle RAC 11g 第 2 版开发集群. 本指南中 ...

  2. Java面试题大全2021版

    一.Java 基础 JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java Run ...

  3. Kotlin协程使用,协程使用注意事项,协程中的await方法使用|不使用suspend使用协程

    参见 码云 协程使用方法一 (Dispatchers调度器模式) 指定不同线程.同线程会挂起并阻塞(挂起是不影响主线程执行,阻塞是同样的IO线程会阻塞) withContext(Dispatchers ...

  4. IDEA中将代码块封装为方法,IDEA代码重构快捷键

    IDEA中将代码块封装为方法 选中要转换的代码块,快捷键: Windows快捷键:Alt + Shift + M Mac快捷键:Alt + Command + M 如图:

  5. IDEA自动生成对象所有set方法

    idea中有一款插件能够生成对象所有的set方法,GenerateAllSetter :下载地址 步骤1:将下载好的压缩包放在自己记得的文件夹中,在idea中进行导入 步骤2:在本地选中刚才的压缩包, ...

  6. List元素互换,List元素转换下标,Java Collections.swap()方法实例解析

    Java Collections.swap()方法解析 jdk源码: public static void swap(List<?> list, int i, int j) {// ins ...

  7. java1.8新增超实用Map方法——Map.getOrDefault()和Map.value()方法详解

    1. Map.getOrDefault() 翻译一下官方解释: java.util.Map<K, V> V getOrDefault(Object key, V defaultValue) ...

  8. spring boot项目 中止运行 最常用的几种方法

    spring boot项目 中止运行 最常用的几种方法: 1. 调用接口,停止应用上下文 @RestController public class ShutdownController impleme ...

  9. Java Calendar.add()方法的使用,参数含义。指定时间差。

    cal.add()方法中的参数含义: 第一个参数如果是1则代表的是对年份操作,2是对月份操作,3是对星期操作,5是对日期操作,11是对小时操作,12是对分钟操作,13是对秒操作,14是对毫秒操作. 第 ...

  10. 设置select下拉框不可修改的→“四”←种方法

    设置select下拉框为不可修改的几种方法: 因为select的特殊性,导致它不能像input表单一样简单地设置一个readonly来限制修改,所以,我们需要进行别的操作! 1.为下拉框添加样式,可以 ...

最新文章

  1. 软件安全访谈:ZipSlip、NodeJS安全性和BBS攻击
  2. python判断题题库大数据技术_智慧树知到_大数据分析的python基础_选择题答案
  3. php程序中用户名含特殊字符怎么办,php中包含ñ等特殊字符
  4. 杂项-Java:JSP
  5. 在 LinearLayout里addView一个图表
  6. 351E. Jeff and Permutation
  7. java的迭代器类中有哪些类_java中的集合类 以及 迭代器
  8. Createprocess控制台程序输出重定向
  9. python常用数据结构_Python常见数据结构整理
  10. Python笔记:Python中的main函数
  11. 用create table 命令建立表
  12. 仿IOS圆角可自定义扩展对话框
  13. 硬件课程设计:步进电机控制系统
  14. java实现控制继电器_单片机控制继电器
  15. 反向代理分离资源服务器分析
  16. 简单的魔方复原方法, 魔方还原公式,图解
  17. PCIe5.0的Add-in-Card(AIC)金手指layout建议(一)
  18. cubic与bbr性能实测
  19. iOS上传IPA时提示导入此构建版本时出错-errors occurred in the app thinning process
  20. 智慧城市(大数据,物联网,云计算之应用)

热门文章

  1. css 动态rem_css布局简史与第四代css布局技术
  2. Varjo:XR体验的终极目标是“串流全世界”
  3. 配置与管理FTP服务器
  4. ZZULIOJ1028
  5. 怎样手动填加python变量_python(十一)接口开发、写日志、发邮件、python来发请求、手动添加环境变量...
  6. 【Energy Reports期刊发表】 2022年能源与环境工程国际会议(CFEEE 2022)
  7. 小白学云:阿里云ECS实例
  8. 胖硕鼠问题(动态规划)
  9. 卷积在信号处理中的意义【转】
  10. 传音控股过会:核心技术说服力低 仍缺乏长期护城河