上一篇文章用Java方法写出了可以对数组执行的功能,然后在用实例化后的对象调用这些方法来实现这些功能;

这篇随笔改用C#语言实现同样的功能

方法类:Array

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication1
{
class Array
{
/// <summary>
/// 遍历数组并输出
/// </summary>
/// <param name="arr"></param>
/// <returns></returns>
public int[] showArr(int[] arr) {
for (int i = ; i < arr.Length;i++ )
{
Console.Write(arr[i]+" ");
}
return arr;
} /// <summary>
/// 创造一个复制数组的方法arrCopy()
/// </summary>
/// <param name="arr"></param>
/// <returns></returns>
public int[] arrCopy(int[] arr) {
int[] fuzhi = new int[arr.Length];
for(int i=;i<arr.Length;i++){
fuzhi[i] = arr[i];
}
//复制后遍历新的数组并输出
Console.WriteLine("复制后的数组为:");
for (int i = ; i < fuzhi.Length;i++ )
{
Console.Write(fuzhi[i]+" ");
}
return fuzhi;
}
/// <summary>
/// 设置一个实现数组的反转的方法fanZhuan()
/// </summary>
/// <param name="arr"></param>
/// <returns></returns>
public int[] fanZhuan(int[] arr) {
for (int i = ; i < arr.Length / ;i++ )
{
//直接调用交换方法
jiaoHuan(arr,i,arr.Length-1-i);//交换数组中的arr[i]和arr[arr.Length-1-i]
//int temp = ;
//temp = arr[i];
//arr[i] = arr[arr.Length - - i];
//arr[arr.Length - - i] = temp;
}
return arr;
}
/// <summary>
/// 冒泡排序的方法sort()
/// </summary>
/// <param name="arr"></param>
public void sort(int[] arr)
{
for (int i = ; i < arr.Length-; i++)//总共跑arr.Length趟排好顺序
{
for (int j = ; j <arr.Length--i;j++ )//每趟比较的次数
{
if (arr[j] > arr[j+]){
//这里的交换代码可以直接调用下面定义好的交换方法
//int temp = arr[j];
//arr[j] = arr[j+];
//arr[j+] = temp;
jiaoHuan(arr,j,j+1);//调用交换方法把j和j+1交换位置
}
}
}
}
//把这部分交换数组元素位置的代码写在一个方法中
public void jiaoHuan(int[] arr,int i,int j){//注意这个方法是怎么传参的******注意
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}

主方法类:Program

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//创建一个数组arr
int[] arr = new int[] { , , , -, , -, , };
//初始化Array类
Array a1 = new Array();
a1.arrCopy(arr);//调用复制数组的方法arrCopy() Console.WriteLine("\n反转后的数组为:");
a1.fanZhuan(arr);//调用反转方法实现数组的反转
a1.showArr(arr);//反转后遍历数组arr Console.WriteLine("\n冒泡排序后的数组为:");
a1.sort(arr);//调用方法对arr排序
a1.showArr(arr); Console.ReadKey();
}
}
}

运行结果:

C#面向对象的方法写数组的功能的更多相关文章

  1. 【blade04】用面向对象的方法写javascript坦克大战

    前言 javascript与程序的语言比如C#或者java不一样,他并没有“类”的概念,虽然最新的ECMAScript提出了Class的概念,我们却没有怎么用 就单以C#与Java来说,要到真正理解面 ...

  2. C#:.net/方法/字符串/数组

    C#:.net/方法/字符串/数组,那点事 首先还是先说下(几个概念的东西)c#下的.net平台的构造快及其功能作用和程序集: .net: .net平台是由:a:运行库+b:全面基础类库(这个是从程序 ...

  3. [.net 面向对象编程基础] (17) 数组与集合

    [.net 面向对象编程基础] (17) 数组与集合 学习了前面的C#三大特性,及接口,抽象类这些相对抽象的东西以后,是不是有点很累的感觉.具体的东西总是容易理解,因此我们在介绍前面抽象概念的时候,总 ...

  4. javascript小实例,多种方法实现数组去重问题

    废话不多说,直接拿干货! 先说说这个实例的要求:写一个方法实现数组的去重.(要求:执行方法,传递一个数组,返回去重后的新数组,原数组不变,实现过程中只能用一层循环,双层嵌套循环也可写,只做参考): 先 ...

  5. Spring AOP 实现写事件日志功能

    什么是AOP?AOP使用场景?AOP相关概念?Spring AOP组件?如何使用Spring AOP?等等这些问题请参考博文:Spring AOP 实现原理 下面重点介绍如何写事件日志功能,把日志保存 ...

  6. javascript多种方法实现数组去重

    先说说这个实例的要求:写一个方法实现数组的去重.(要求:执行方法,传递一个数组,返回去重后的新数组,原数组不变,实现过程中只能用一层循环,双层嵌套循环也可写,只做参考): 先给初学者解释一下什么叫数组 ...

  7. Java方法_数组

    /* 方法:完成特定功能的代码块.   注意:在很多语言里面有函数的定义,而在Java中函数被称为方法.   方法格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) { ...

  8. CMM模型,结构化开发方法和面向对象开发方法的比较,UML(统一建模语言),jackson开发方法

    CMM模型 一.CMM简介 CMM,英文全称为Capability Maturity Model for Software,即:软件成熟度模型. CMM的核心是把软件开发视为一个过程.它是对于软件在定 ...

  9. NumSharp的数组切片功能

    NumSharp的数组切片功能 原文地址:https://medium.com/scisharp/slicing-in-numsharp-e56c46826630 翻译初稿(英文水平有限,请多包涵): ...

随机推荐

  1. Networking with PHP

    PHP Advanced and Object-Oriented Programming 3rd Edition

  2. Machine Learning in Action -- FP-growth

    要解决的问题,频繁项集 最暴力的方法,就是遍历所有的项集组合,当然计算量过大 最典型的算法apriori, 算法核心思想,当一个集合不是频繁项集,那么它的超集也一定不是频繁项集 这个结论是很明显的,基 ...

  3. oracle管理控制台不能打开,提示此网站的安全证书有问题?

    在命令行里直接键入:certutil -setreg chain\minRSAPubKeyBitLength 128 然后再用IE打开.

  4. background和background-size

    今天偶遇一个小问题. 添加logo图片时, 由于不需要重新定位图片位置,就准备偷懒在间歇属性中省略background-position的属性,然而很不幸的是,结果却是酱紫的(谷歌浏览器): 不能加载 ...

  5. 自动换行的矢量文字(android demo)

    由于矢量字体的宽度不同,自测android字体,发现当中文字体大小为100像素时,字母s等 宽度大概在52,字母l等 宽度大概在26,这样自动换行就不可以按字符的个数计算截取每行显示的字串. 直接上代 ...

  6. ArcGIS Engine开发之旅01---产品组成、逻辑体系结构

    原文:ArcGIS Engine开发之旅01---产品组成.逻辑体系结构 ArcGIS Engine 由两个产品组成:  面向开发人员的软件开发包(ArcGIS Engine Developer k ...

  7. [LeetCode]题解(python):086 - Partition List

    题目来源 https://leetcode.com/problems/partition-list/ Given a linked list and a value x, partition it s ...

  8. Segments---poj3304(判断直线与线段的位置关系)

    题目链接:http://poj.org/problem?id=3304 题意:给你n个线段,求是否有一条直线与所有的线段都相交,有Yes,没有No; 枚举所有的顶点作为直线的两点,然后判断这条直线是否 ...

  9. busybox rx 命令

    rx命令使用xmodem传送文件,只需要串口线就传送. 在文件系统输入如下命令,传送文件到板子上,板子上保存文件的名称为file rx file 在secureCRT中选择Transfer->S ...

  10. 面试&笔试常见题,你了解多少?

    HTML:1.  什么是语义化的HTML?有何意义?为什么要做到语义化?(高频率考题)2.  行内元素和块元素分别有哪些?(高频率)3.  严格模式与混杂模式的区分?如何触发这两种模式?(高频率)4. ...