`
wangdeshui
  • 浏览: 259094 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C#拾遗系列(9):继承、接口、扩展方法、分部类、类操作、Ref and Out、可空类型

阅读更多

本文内容:

  • 继承
  • Equal示例
  • 结构和类
  • 属性
  • Ref and Out
  • 类操作
  • 扩展方法
  • 接口
  • 可空类型
  • 分部类

 

1. 继承

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace NetTest

{

    public class Animal

    {

        public virtual void Fly()

        {

            Console.Out.WriteLine("Animal Fly");

            Console.Out.WriteLine("----------------------------");

        }

    }

    public class Dog : Animal

    {

        public new virtual void Fly()

        {

            base.Fly();

            Console.Out.WriteLine("Dog  can't Fly");

            Console.Out.WriteLine("----------------------------");

        }

        //也可以,但子类不能再覆盖了

        //public new  void Fly()

        //{

        //    base.Fly();

        //    Console.Out.WriteLine("Dog can't Fly");

        //    Console.Out.WriteLine("----------------------------");

        //}               

    }

    public class Cat : Animal

    {

        public override void Fly()

        {

            base.Fly();

            Console.Out.WriteLine("Cat can't fly");

            Console.Out.WriteLine("----------------------------");

        }

 

        public override string ToString()

        {

            return "I am a happy cat,wow";

        }

 

    }

 

    public class InheritTest

    {

        public void Test()

        {

            /*

           new 和 overide的区别是,当把子类付给父类变量时,new 将调用父类的方法,而override将调用子类的方法       

           */

            Animal dog = new Dog();

            dog.Fly();

            /* 输出

            Animal Fly   

            */

 

            Animal cat = new Cat();

            cat.Fly();

 

            /* 输出

            Animal fly

            Cat can't Fly           

            */

            Console.Out.WriteLine(cat.ToString());

 

        }

    }

}

 

2. Equal 示例

 

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace NetTest

{

    public class EqualsTest

    {

        public void testEquals()

        {

            /*C# 中有两种不同的相等:引用相等和值相等。

            值相等是大家普遍理解的意义上的相等:

            它意味着两个对象包含相同的值。例如,两个值为 2 的整数具有值相等性。

            引用相等意味着要比较的不是两个对象,而是两个对象引用,且两者引用的是同一个对象                    

            若要检查引用相等性,应使用 ReferenceEquals。若要检查值相等性,请使用 Equals。           

            */

            object a = new object();

            object b = a;

            Console.Out.WriteLine(System.Object.ReferenceEquals(b, a));

 

            int c = 2;

            int d = 3;

            Console.Out.WriteLine(c.Equals(d));           

        }

    }

}

 

 

3.  结构和类

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

/*   

    结构具有以下特点:结构是值类型,而类是引用类型。

    与类不同,结构的实例化可以不使用 new 运算符。  

    结构可以声明构造函数,但它们必须带参数。      

    一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自 System.ValueType,后者继承自 System.Object。

    结构可以实现接口。                                                                                              

    结构可用作可为 null 的类型,因而可向其赋 null 值。                                                      

*/ 

namespace NetTest

{

    struct StructAndClass

    {

        /*

        * 结构不能包含无参构造函数

        public StructAndClass(){ }

        */

 

        public StructAndClass(int age, string name)

        {

            this.age = age;

            this.name = "jack";

        }

        public int age;

        public string name;

    }

   public class TestStrcutAndClass

    {

        public void TestSAC()

        {

            StructAndClass a = new StructAndClass();

            a.age = 10;

            a.name = "jack";

            Console.Out.WriteLine(a.age + ":" + a.name);

            StructAndClass b = new StructAndClass(20, "wang");

            Console.Out.WriteLine(b.age + ":" + b.name);

        }

    }

}

 

4. 属性

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace NetTest

{

    public class TestAttribute

    {

        public void Test()

        {           

            PrintAuthorInfo(typeof(CustomAttribute));       

        }

 

        /*

        Obsolete 属性将某个程序实体标记为一个建议不再使用的实体。每次使用被标记为已过时的实体时,

        随后将生成警告或错误,这取决于属性是如何配置的,第二个参数是true时,编译时显示错误

        */

        [Obsolete("please use aonther method,this is obsolate",true)]

        public void TestObsolate()

        {

            Console.Out.WriteLine("welcome");

 

        }

        private static void PrintAuthorInfo(System.Type t)

        {

            System.Console.WriteLine("Author information for {0}", t);

            System.Attribute[] attrs = System.Attribute.GetCustomAttributes(t);  // reflection

 

            foreach (System.Attribute attr in attrs)

            {

                if (attr is Author)

                {

                    Author a = (Author)attr;

                    System.Console.WriteLine("   {0}, version {1:f}", a.Name, a.version);

                }

            }

        }

        //应用自定义属性

        [Author("Jack",version=1.0)]

        [Author("TJ",version=2.0)]

        class CustomAttribute

        {

            public void Test()

            {

 

                Console.Out.WriteLine("Test custom attribute");

            }       

        }

        //自定义的属性,集成属性类

        [System.AttributeUsage(AttributeTargets.Class|AttributeTargets.Struct,AllowMultiple=true)]

        class Author : System.Attribute

        {

            private string name;

            public double version;

 

            public Author(string name)

            {

                this.name = name;

                version = 1.0;

            }

 

            public string Name

            {

 

                get { return this.name; }

            }

 

        }

    }

 

}

 

5. Ref and Out

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace NetTest

{

   public  class TestRefOut

    {

       private Shape s;

       private Shape d;

 

       /* 传递到 ref 参数的参数必须最先初始化。这与 out 不同,后者的参数在传递之前不需要显式初始化 ,out 必须在方法内部赋值

       尽管 ref 和 out 在运行时的处理方式不同,但在编译时的处理方式相同。因此,如果一个方法采用 ref 参数,

       而另一个方法采用 out 参数,则无法重载这两个方法

        属性不是变量,因此不能作为 ref 参数传递

        */

       private void Test(ref Shape a, out Shape b)

       {

           //a = "good";

           b = new Shape();

           b.width = 500;

           Console.Out.WriteLine(a.width);

       }

       public void Test()

       {

           s = new Shape();

           s.width = 200;

           Test( ref s, out d);

           Console.Out.WriteLine(d.width);

 

       }

    }

 

   public class Shape

   {

       public int width;

       public int length;

   }

}

 

6. 类操作

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace NetTest

{

   public class OperationOveride

    {

       public void TestOperationOverid()

       {

           Complex c1 = new Complex(10, 2);

           Complex c2 = new Complex(5, 4);

           Complex c3 = c1 + c2;

           Console.Out.WriteLine(c3.real + "," + c3.imaginary);       

       }      

    }

 

    public struct Complex

    {

        public int real;

        public int imaginary;

 

        public Complex(int real, int image)

        {

            this.real = real;

            this.imaginary = image;

        }

 

        public static Complex operator +(Complex c1, Complex c2)

        { 

            return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);

        }

 

    }

}

 
7. 扩展方法
 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

//Description: 扩展方法

namespace NetTest

{

    public class TestExtendMethod

    {

        public void Test()

        {

            Jack my = new Jack();

            my.showSmile();

            int i = 5;

            Console.Out.WriteLine(i.addAge(10));

 

        }

    }

    public class Jack

    {

        public void Smile()

        {

            Console.Out.WriteLine("Jack smile");

        }

    }

 

    /*

    扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。

    扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。

    对于用 C# 和 Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法之间没有明显的差异.     

 

    在代码中,可以使用实例方法语法调用该扩展方法。但是,编译器生成的中间语言 (IL) 会将代码转换为对静态方法的调用。

    因此,并未真正违反封装原则。实际上,扩展方法无法访问它们所扩展的类型中的私有变量。

 

    可以使用扩展方法来扩展类或接口,但不能重写扩展方法。与接口或类方法具有相同名称和签名的扩展方法永远不会被调用。

    编译时,扩展方法的优先级总是比类型本身中定义的实例方法低。换句话说,

    如果某个类型具有一个名为 Process(int i) 的方法,而您有一个具有相同签名的扩展方法,则编译器总是绑定到该实例方法。

    当编译器遇到方法调用时,它首先在该类型的实例方法中寻找匹配的方法。

    如果未找到任何匹配方法,编译器将搜索为该类型定义的任何扩展方法,并且绑定到它找到的第一个扩展方法。

 

    */

    public static class myExtendmethod

    {

        public static void showSmile(this Jack jack)

        {

            Console.Out.WriteLine("This is Extend method");

        }

 

        public static int addAge(this int s, int b)

        {

            return s + b;

        }

 

    }

 

}

 

8. 接口

 

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace NetTest

{

   public  interface IJack

    {

        void Happy();

 

    }

 

   public interface ICrystal

    {

        void Happy();

    }

 

   public class Happy: IJack,ICrystal

    {

        #region IJack Members

 

        //不能用限定符如private ,public等

        void IJack.Happy()

        {

            Console.Out.WriteLine("haha");

        }

        #endregion

 

        #region ICrystal Members

 

       //显示实现的成员不能从类直接访问

        void ICrystal.Happy()

        {

            Console.Out.WriteLine("smile");

        }

 

        #endregion 

 

    }

 

   public class TestInterface

   {

       public void Test()

       {

           /*

            同名时,必须转换到接口才能调用,两个方法实现都是分离的,都不可以直接在类中使用

            */

 

           /*

           Happy t = new Happy();   //显示实现的成员不能从类直接访问

           t.(..)

            * */

 

           IJack testHappy =(IJack)new Happy();

 

           testHappy.Happy();

 

           ICrystal testcrystalHappy = (ICrystal)new Happy();

           testcrystalHappy.Happy();

       }

   }

}

 

 

9. 可空类型

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace NetTest

{

    public  class TestNullable

    {

        public void Test()

        {

            IsNullValue(null);

            IsNullValue(20);

            int? c = null;

 

            //?? 运算符定义在将可以为 null 的类型分配给非可以为 null 的类型时返回的默认值

            int d = c ?? -1;

            Console.Out.WriteLine(d);

 

        }

 

        public void IsNullValue(int? num)

        {

           if (num.HasValue)

            {

                System.Console.Out.WriteLine("num has value:" + num);

                System.Console.Out.WriteLine("num  vaue has value:" + num.Value);

            }

            else

            {

                System.Console.Out.WriteLine("num is null" );

            }

           System.Console.Out.WriteLine(num.GetValueOrDefault());

           System.Console.Out.WriteLine(num.GetValueOrDefault(100));

           System.Console.Out.WriteLine("---------------------");

        }

    }

}

 

 

10. 分部类

  a. 描述:

        分部类或结构可以包含分部方法。类的一个部分包含方法的签名。可以在同一部分或另一个部分中定义可选实现。

        如果未提供该实现,则会在编译时移除方法以及对方法的所有调用。

        分部方法使类的某个部分的实施者能够定义方法(类似于事件)。

        类的另一部分的实施者可以决定是否实现该方法。如果未实现该方法

        编译器将移除方法签名以及对该方法的所有调用。因此,分部类中的任何代码都可以随意地使用分部方法,

        即使未提供实现也是如此。如果调用了未实现的方法,将不会导致编译时错误或运行时错误。

 

        在自定义生成的代码时,分部方法特别有用。这些方法允许保留方法名称和签名,

        因此生成的代码可以调用方法,而开发人员可以决定是否实现方法。

        与分部类非常类似,分部方法使代码生成器创建的代码和开发人员创建的代码能够协同工作,而不会产生运行时开销。

        分部方法声明由两个部分组成:定义和实现。它们可以位于分部类的不同部分中,

        也可以位于同一部分中。如果不存在实现声明,则编译器将优化定义声明和对方法的所有调用。

 

        分部方法声明必须以上下文关键字 partial 开头,并且方法必须返回 void。

        分部方法可以有 ref 参数,但不能有 out 参数。

        分部方法为隐式 private 方法,因此不能为 virtual 方法。

        分部方法不能为 extern 方法,因为主体的存在确定了方法是在定义还是在实现。

        分部方法可以有 static 和 unsafe 修饰符。

        分部方法可以为泛型的。约束将放在定义分部方法声明上,但也可以选择重复放在实现声明上。

        参数和类型参数名称在实现声明和定义声明中不必相同。

        不能将委托转换为分部方法。         

   b. 示例:

     

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace NetTest

{

    /*

    可以将类或结构、接口或方法的定义拆分到两个或多个源文件中。

    每个源文件包含类型或方法定义的一部分,

    编译应用程序时将把所有部分组合起来   

 

    partial 修饰符不可用于委托或枚举声明中。

 

    将从所有分部类型定义中对以下内容进行合并:

    XML 注释

    接口

    泛型类型参数属性

    类属性

    成员   

    */

    public partial interface Chicken

    {

        void run();

    };

 

    public partial interface Chicken

    {

        void walk();

    }

 

    public class smallChicken : Chicken

    {

        #region Chicken Members

 

        public void run()

        {

            Console.Out.WriteLine("small chicken run..");

        }

 

        public void walk()

        {

            Console.Out.WriteLine("small chicken walk");

        }

 

        #endregion

    }

 

    public partial class TestPartial

    {

        public void TestA() { Console.Out.WriteLine("TestA"); }

 

        // Definition

        partial void onNameChanged();

 

    }

 

    public partial class TestPartial

    {

        public void TestB() { Console.Out.WriteLine("TestB"); }

        // Implementation

                partial void onNameChanged()

        {

            Console.Out.WriteLine("partial method");

        }

 

    }

 

    public partial class TestpartialCall

    {

 

        public void Test()

        {

            TestPartial test = new TestPartial();

            test.TestA();

            test.TestB();

 

            Chicken smallChicken=new smallChicken();

            smallChicken.run();

            smallChicken.walk();

 

        }

    }

}

分享到:
评论

相关推荐

    DeepSeek行业应用实践报告-智灵动力PPT全

    DeepSeek行业应用实践报告-智灵动力【PPT全】

    基于SSH的线上医疗报销系统.zip-毕设&课设&实训&大作业&竞赛&项目

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    机器学习大作业-复现KAN网络.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    基于Android和TensorFlow Lite完成移动端机器学习相关应用的实现(毕设&课设&实训&大作业&竞赛&项目)

    基于Android和TensorFlow Lite完成移动端机器学习相关应用的实现,包括使用已训练模型的机器学习应用和自主模型训练两部分。.zip项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    同时识别多个手写数字(或印刷体)

    这是一个基于 PyQt5 和 TensorFlow 的多数字手写体识别程序,支持同时识别图片中的多个手写数字。以下是该文件的基本说明: 主窗口:包含加载图片、识别、清除按钮,以及图片显示区域和结果展示区域。 图片显示:支持显示原始图片和处理后的图片。 分割结果显示:显示分割出的每个数字图片。 结果展示:显示所有识别结果和置信度。

    基于机器学习的情感分析(2极).zip(课设&实训&大作业&项目)

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    在云服务器上搭建MQTT服务器(超详细,一步到位)

    在云服务器上搭建MQTT服务器(超详细,一步到位)

    《由一组学习机器学习的学生用 Python 开发计算机游戏》(毕业设计,源码,教程)简单部署即可运行 功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是均来自个人的课程设计、毕业设计或者具体项目,代码都测试ok,都是运行成功后才上传资源,答辩评审绝对信服的,拿来就能用。放心下载使用!源码、说明、论文、数据集一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 4、如有侵权请私信博主,感谢支持

    (参考项目)MATLABA交通标志识别.zip

    参考项目,评分9.8分

    基于Unity实现的语音识别人物面部表情改变-源码工程.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    基于FX3U PLC控制多种变频器的RTU通信系统:硬件配置、程序编写、接线及参数说明,基于FX3U PLC与RTU通信技术,实现对西门子V20、台达VFD-M和三菱E700变频器的独立控制:硬件配置

    基于FX3U PLC控制多种变频器的RTU通信系统:硬件配置、程序编写、接线及参数说明,基于FX3U PLC与RTU通信技术,实现对西门子V20、台达VFD-M和三菱E700变频器的独立控制:硬件配置与程序详解,fx3u和西门子v20 台达vfd-m 三菱E700 rtu所需硬件:FX3U PLC,FX3U-485BD通信板,变频器。 功能:使用fx3u-485bd板,rtu通信控制西门子v20 台达VFD-M 三菱E700三种变频器正反转,停止,频率设定,加减速,以及对频率,电压,电流的读取,有运行指示,效果可以看视频,反应及时,运行可靠,三种变频器程序是单个的,非三台一起控制。 的内容包括程序,接线,参数说明 ,核心关键词: fx3u-485bd; 西门子v20; 台达VFD-M; 三菱E700; 通信控制; 正反转; 停止; 频率设定; 加减速; 读取; 运行指示; 视频; 程序; 接线; 参数说明,FX3U PLC控制多种变频器程序:程序、接线与参数说明

    基于SSM框架的婚纱礼服定制网站(毕设&课设&实训&大作业&竞赛&项目)

    软件开发综合项目——辛德瑞拉婚纱礼服定制网站,使用SSM框架和Maven管理工具,开发环境为Eclipse Jee Photon,数据库使用MySQL.zip项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    基于PHP和HTML5的音乐网站.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    惠普436/437更换传输卷

    惠普436/437更换传输卷

    rabbmit相关安装包

    erlang安装包,rabbmit安装环境

    大创项目网页设计:心田农场.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    基于javaSSM的电影网页项目.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    IDC报告 -中小型企业如何利用技术实现关键业务目标 数字化转型的后续步骤.pdf

    IDC报告 -中小型企业如何利用技术实现关键业务目标 数字化转型的后续步骤

    仅需一个 HAL 库函数:轻松实现 STM32 的 SPI 编程(以 Flash W25Q128 为例)

    主要介绍如何用HAL_SPI_TransmitReceive()函数实现对W25Q128 Flash存储器ID的读取。先介绍SPI是一种高速且简单的同步串行接口技术,由四根线((MOSI、MISO、SCLK和SS/CS))组成。接着介绍Flash ,它是串行闪存芯片,能提供更大存储容量。还提到STM32 HAL库简化了SPI编程,以正点原子精英V2开发板为例,给出开发环境及函数原型和参数。最后展示读取ID的代码示例,通过发送命令、接收数据并判断状态来获取ID。 

    基于MATLAB的光伏并网仿真模型:研究电能质量分析与高品质并网运行策略 或 MATLAB光伏并网仿真研究:探讨高品质并网与电能质量分析,包括逆变器与输电线路模型 ,MATLAB光伏并网仿真模型:构建

    基于MATLAB的光伏并网仿真模型:研究电能质量分析与高品质并网运行策略 或 MATLAB光伏并网仿真研究:探讨高品质并网与电能质量分析,包括逆变器与输电线路模型。,MATLAB光伏并网仿真模型:构建高品质并网运行的太阳能电站接入系统模型并分析电能质量,MATLAB光伏并网仿真模型,在Matlab中建立光伏电站接入系统模型,包括光伏发电逆变器及负荷模型等,仿真分析接入点处的电能质量,实现高品质并网运行。 太阳能电池,MPPT,包括输电线路,接入三电平并网逆变器和电网。 ,MATLAB光伏并网仿真模型; 光伏电站接入系统模型; 逆变器; 负荷模型; 电能质量分析; 品质并网运行; 太阳能电池; MPPT; 输电线路; 三电平并网逆变器; 电网。,基于Matlab的光伏并网仿真模型:高品质运行与电能质量分析

Global site tag (gtag.js) - Google Analytics