偶遇C#

27 篇文章 0 订阅
4 篇文章 0 订阅

C# 里面的 #region 是什么意思?    

    #region是c#预处理器指令。

    #region是一个分块预处理命令,它主要用于编辑代码的分段,在编译时会被自动删除。

    #region使你可以在使用VS代码编辑器的大纲显示功能时指定可展开或折叠的代码块。

    例如:

        #region  MyClass definition

        public class MyClass 
        
{
            
static void
 Main() 
            
{
            }

        }

        
#endregion

    备注:#region块必须以#endregion指令终止。

              #region块不能与#if块重叠。但是,可以将#region块嵌套在#if块内,或将#if块嵌套在#region块内。

转自:http://blog.csdn.net/wjm371002515/article/details/6895816

java的是*.java
C# 的是*.cs
java编译后文件*.class 
C# 编译后:*.dll

using System.Reflection 是什么类库

       System.Reflection 命名空间包含具有以下功能的类型:能让您以受控方式查看加载的类型、方法和字段,能够动态创建和调用类型。子命名空间包含具有以下功能的类型:能让编译器或其他工具发出元数据和 Microsoft 中间语言 (MSIL)。
        命名空间命名空间 说明 System.Reflection System.Reflection 命名空间包含通过检查托管代码中程序集、模块、成员、参数和其他实体的元数据来检索其相关信息的类型。 这些类型还可用于操作加载类型的实例,例如挂钩事件或调用方法。若要动态创建类型,请使用 System.Reflection.Emit 命名空间。  System.Reflection.Emit System.Reflection.Emit 命名空间包含允许编译器或工具发出元数据和 Microsoft 中间语言 (MSIL) 并可选择在磁盘上生成 PE 文件的类。 这些类的主要客户端是脚本引擎和编译器。

C# 常用的命名空间及作用

当你创建一个WinForm程序的时候: 
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Windows.Forms; 

1、System 命名空间包含基本类和基类,这些类定义常用的值和引用数据类型、事件和事件处理程序、接口、属性和异常处理。 
2、System.Collections.Generic 命名空间包含定义泛型集合的接口和类,泛型集合允许用户创建强类型集合,它能提供比非泛型强类型集合更好的类型安全性和性能。 
3、System.ComponentModel 命名空间提供用于实现组件和控件运行时和设计时行为的类。此命名空间包括用于实现属性和类型转换器、绑定到数据源以及授权组件的基类和接口。 
4、System.Data 命名空间提供对表示 ADO.NET 结构的类的访问。通过 ADO.NET 可以生成一些组件,用于有效管理多个数据源的数据。 
5、System.Drawing 命名空间提供了对 GDI+ 基本图形功能的访问。在 System.Drawing.Drawing2D、System.Drawing.Imaging 以及 System.Drawing.Text 命名空间中提供了更高级的功能。 
6、System.Text 命名空间包含表示 ASCII、Unicode、UTF-7 和 UTF-8 字符编码的类;用于将字符块转换为字节块和将字节块转换为字符块的抽象基类;以及操作和格式化 String 对象而不创建 String 的中间实例的 Helper 类。 
7、System.Windows.Forms 命名空间包含用于创建基于 Windows 的应用程序的类,以充分利用 Microsoft Windows 操作系统中提供的丰富的用户界面功能。

C++如何调用C#的函数。

现有一个C#程序正好实现了我要的部分功能,单我需要用C++来完成其他部分。调用问题成了最关键的问题。

http://blog.csdn.net/biyusr/article/details/7575720


*.dcm文件如何保存成*.bin文件

第一种方法:

如何将一个数组存为BIN文件,现在有一个int型的数组,我要把里面的数据保存成bin格式的文件,具体该怎么操作?
------解决方案--------------------
int dat[20];
CFile file(...);
...
file.Write(dat, sizeof(dat)); 
------解决方案--------------------

探讨 引用:  CFile::typeBinary //二进制
下面一处改下&  amp;   a改为a,因为a已经代表数组首地址了
file.Write(a,sizeof(int)*10);//10替换为你的数组长度
第二种方法:
依次打开:“开始”,“程序”,“附件”,“记事本” 
把数据复制到记事本里后保存,在另存为的对话框里选择“保存类型”为“所有文件”,文件名为:文件名.bin 即可~~~~~
补充:CFile类的读写操作:

VC6.0的CFile类的seek的使用,(文件定位操作)!

用seek确实可以定位到你想要的文件中的位置,但是我在指定的位置添加字符串时,字符串是添加成功了,但是这个字符串却把相应位置的字符给覆盖掉了,这是为什么啊?
我想要在指定的位置添加一个字符串,当然,在指定位置后面的内容都得后移.请帮帮我好吗?真的很急!谢谢你们了!
代码如下:
CFile file;
file.Open(SaveXmlPath, CFile::modeReadWrite, NULL);
file.Seek(41,CFile::begin);       //从文件头开始往下移动41字节
char pbuf[10] = "1234567890";
file.Write( pbuf, 10 );
file.Close();
请赐教!
CFile类本来就是这样直接写硬盘的,当然不会有你想象的“插入”模式和“改写”模式了。
如果要插入,可以把第41个字符后面的所有字符先存起来,然后把要插入的字符追加到文件尾,最后再把刚才存起来的字符加上。
只能这样了。

c#中console类所有方法和属性的用法和作用  

Console.Write 表示向控制台直接写入字符串,不进行换行,可继续接着前面的字符写入。 
Console.WriteLine 表示向控制台写入字符串后换行。 
Console.Read 表示从控制台读取字符串,不换行。 
Console.ReadLine 表示从控制台读取字符串后进行换行。 
Console.ReadKey 获取用户按下的下一个字符或功能键。按下的键显示在控制台窗口中。 

Console.Beep 方法 通过控制台扬声器播放提示音
Console.Clear 方法清除控制台缓冲区和相应的控制台窗口的显示信息

C# Main函数  args参数如何传入

http://hi.baidu.com/number1/item/618cb5f8ea214f743d198b11试了下,不是我想要的结果。

http://www.cnblogs.com/hachi/archive/2011/03/14/1984303.html这篇文章不错,推荐!

C#结尾的Console.Readkey()有什么作用啊?

等待键盘输入,退出程序。使调试时能看到输出结果。如果没有此句,命令窗口会一闪而过。
C#与C++结构体的传输问题 问题分解
1) 

关于[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)] 的解释

[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)] 

这是C#引用非托管的C/C++的DLL的一种定义定义结构体的方式,主要是为了内存中排序,LayoutKind有两个属性Sequential和Explicit

Sequential表示顺序存储,结构体内数据在内存中都是顺序存放的

Explicit表示精确布局,需要用FieldOffset()设置每个成员的位置

这都是为了使用非托管的指针准备的,知道什么意思就行,C#的CLR提供了更为灵活的自动管理方式,所以对C#来说可有可无。

CharSet=CharSet.Ansi表示编码方式

详细请移步:

http://blog.csdn.net/masterft/article/details/1699009

http://www.cnblogs.com/lonelyDog/archive/2012/02/02/2335432.html

http://www.cnblogs.com/namek/archive/2010/08/26/1808773.html

2)C#不能直接在命名空间中直接声明变量或函数,

  1. namespace Root  
  2. {  
  3.     namespace Leaf  
  4.     {          
  5.         int iVal = 0;  
  6.   
  7.         void Run(){};  
  8.     }  
  9. }  
这个代码段在C++能够很完美地进行编译,但在C#中却会提示出错:error CS0116: A namespace cannot directly contain members such as fields or methods

附:C++ VS C#(2):字符串,命名空间
http://blog.csdn.net/norains/article/details/6044608 个人感觉不错,推荐!

3)C

利用org.in2bits.MyXls.dll实现从服务器端下载EXCEL数据++结构体传输问题#与C++结构

什么是.net框架 http://www.cnblogs.com/muyue/archive/2012/11/13/2768126.html

.NET框架是一个多语言组件开发和执行环境提供了一个跨语言的统一编程环境.NET框架的目的是便于开发人员更容易地建立Web应用程序和Web服务,使得Internet上的各应用程序之间,可以使用Web服务进行沟通。

从层次结构来看,.NET框架又包括三个主要组成部分:公共语言运行时(CLR:Common Language Runtime)、服务框架(Services Framework)和上层的两类应用模板——传统的Windows应用程序模板(Win Forms)和基于ASP NET的面向Web的网络应用程序模板(Web Forms和Web Services)。输问题

C#与C++结构体传输问题

C#如何写一个接口封装成Dll

用C#的写一个Dll接口,然后定义一个string name的参数,程序A对name赋值、然后程序B调用获取赋值的A的值。如何写?
正常写 然后发布以后把bll 文件夹下的相应dll文件拷贝到要用的程序中,然后再程序中应用该dll文件,就可以调用你的那个接口了

C#生成基于COMDLL

在代码里面写"[ComVisible(true)]",和在工程属性里设置com可见,这两个有什么区别吗?

我自己的代码里面如果不写[ComVisible(true)]这样的语句,而只在工程属性里面选择com可见(如下图),编译出来的dll也是可以被vc写的com客户端调用的。http://bbs.csdn.net/topics/390584129

c#写的dll能给vc调用吗?

貌似不能吧,C#生成的dll是托管代码,需要.NET Framework的
谢谢了。不知道如果写成com的是不是就可以了?
感觉不错的参考文件:
http://biancheng.dnbcw.info/c/84983.html
http://hi.baidu.com/nqvwvvwfoybcdfr/item/eb671306f50944e1f55ba6ed
http://wenku.baidu.com/link?url=gldwngICF7DMudNCSt9yat8LnWnQ3C3wMCgZfPaAm0yXH21D8ROwSvYTH2E9LoEIPnor7ncyJRgY9tzcom77mFKg0pYVf5Npz9cvRASbEKW
 
   
http://blog.csdn.net/canhui2009/article/details/7887908

http://jingyan.baidu.com/article/7f41ececd40b6f593d095c15.html

c#中ref到底有什么作用.

当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中!! 请解释一下什么叫"控制权传递回调用方法",能说得通俗一点吗... int a=1; int b=2; swap(a ,b) console.readline("{0},{1}",a,b) 1 2 没有变化 swap(ref a ref b) 之后就可以交换值 为什么.

其实,你也不用理解得多复杂!你只要知道,如果用上ref的话,操作的是同一个变量,所以会改变值,如果没用上ref的话,操作的不是同一个变量,所以值不会改变。这就行了!其他的,以后学得深入了,你就会懂了!现在弄这些问题,只会令你学得很痛苦的!只不过用ref的话,调用的参数要在调用前就要初始化,初始化,你懂吧?就是赋值!

C#头文件总结:

1.using System; .net吧,这是说你的程序使用了系统的命名空间,编写不同的程序的时候要使用到不同的空间。 2.using System.Collections.Generic;包含定义泛型集合的接口和类;泛型集合允许用户创建强类型的集合,这种集合在类型安全和性能上均优于非泛型强类型集合。 3.using System.Linq;System.Linq 命名空间提供支持使用语言集成查询 (LINQ) 进行查询的类和接口,using + 命名空间名字,这样可以在程序中直接用命名空间中的类型,而不必指定类型的详细命名空间.。 4.using System.Text;对流进行操作时要引用 using System.Text; 命名空间

l C# 能够开发许多类型的应用程序,最重要的三种是:控制台程序、窗体应用程序、 Web 应用程序 窗体应用程序又称 WinForm 程序,都继承自 Forms 我们使用的 Windows 中,大部分桌面应用都是窗体应用程序。
5.Console.ReadyKey();暂停代码执行。等待用户按键。
6.using System.Reflection; 引入命名空间,当你需要用到某一个dll文件中的类时,你必须要引入他的命名空间,才能使这个类被识别!System.Reflection 命名空间包含通过检查托管代码中程序集、模块、成员、参数和其他实体的元数据来检索其相关信息的类型。 这些类型还可用于操作加载类型的实例,例如挂钩事件或调用方法。若要动态创建类型,请使用 System.Reflection.Emit 命名空间。 7.using System.Runtime.CompilerServices; System.Runtime.CompilerServices  命名空间为使用托管代码的编译器编写器提供在元数据中指定属性(这些属性影响公共语言运行时的运行时行为)的功能。 此命名空间将主要用于编译器编写器中,但在各种各样的广泛应用程序中使用了其一些类,例如  InternalsVisibleToAttribute 8.using System.Runtime.InteropServices; System.Runtime.InteropServices 命名空间提供各种各样支持 COM 互操作 及平台调用服务的成员。  如果您对这些服务不熟悉,请参见 与非托管代码交互操作 此命名空间提供了多种类别的功能,如下表所示。  特性可控制封送行为,例如如何安排结构或表示字符串。   其中最重要的特性有 DllImportAttribute(可以用来定义用于访问非托管 API 的平台调用方法)和 MarshalAsAttribute(可以用来指定如何在托管内存与非托管内存之间封送数据)。 9:assembly:

[C++]如何把 std::string 转成 System::String^ ??

如何用C++实现从System::string到std::string的转换?

http://wenwen.sogou.com/z/q349736342.htm
mfc对话框程序中如何使用using namespace system
http://blog.csdn.net/jiangsheng/article/details/323425
C#的String与MFC的CString相互转换
//注:VS2010中的项目属性的“通用属性”的“框架与引用”中添加ReaderSDK.dll, 
//      ReaderSDK为C#中的命名空间,另:C#中namespace可以有逗号,而C++中不能,
//      eg:C#中为 myspace.name 在C++中该为myspace::name
#using "ReaderSDK.dll"
using namespace System;
using namespace ReaderSDK;
#pragma managed
//CString convert to C# String
CString strIP ("192.168.1.27");
String^ strIPCS = gcnew String(strIP);
// C# String convert to CString 
m_strTid = CString((String^)reader->GetTid()); //C#中 public String  GetTid()
设置ListCtrl列表控件其中某一行的字体和背景颜色
http://blog.csdn.net/leixiaohua1020/article/details/12619341

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值