c#中参数类型xx比方法xx可访问类型低

问题描述

我在C#的一个类中定义了一个调用public的结构体的方法,此方法的修饰符也是public。然后在另一个方法中调用方法,结果就提示参数类型比方法的可访问类型低,求解源码如下:classHKLogin{publicHCNetSDK{publicstructNET_DVR_ACTIVATECFG{publicuintdwSize;//结构体大小publicbyte[]sPassword;//初始密码publicbyte[]byRes;//保留,置为0}/*********************************************************Function:NET_DVR_ActivateDeviceDesc:激活设备。Input:sDVRIP[in]设备IP地址wDVRPort[in]设备端口lpActivateCfg[in]激活参数Output:TRUE表示成功,FALSE表示失败。获取错误码调用NET_DVR_GetLastError。Return:TRUE表示成功,FALSE表示失败**********************************************************/[DllImport(@"D:海康威视DLLPreviewDemobinHCNetSDK.dll")]publicstaticboolNET_DVR_ActivateDevice(IntPtrsDVRIP,ushortwDVRPort,NET_DVR_ACTIVATECFGlpActivateCfg);//激活设备。}}

这是其中一个类的定义下面是用另外一个类调用这个方法,代码如下:publicclassClass1{publicboolCamera_Active(IntPtrIPadress,ushortPort,HCNetSDK.NET_DVR_ACTIVATECFGActiveConfig){boolsuccess;success=HCNetSDK.NET_DVR_ActivateDevice(IPadress,Port,ActiveConfig);returnsuccess;}}

解决方案

解决方案二:
全加上public即可
解决方案三:
把HKLogin改成public的类
解决方案四:
HKLogin改成public

时间: 2024-11-08 19:39:39

c#中参数类型xx比方法xx可访问类型低的相关文章

参数类型-同样一个方法,同样一个参数,得到结果不一样!!!!

问题描述 同样一个方法,同样一个参数,得到结果不一样!!!! 我现在模糊查询,在测试类中单独调用方法,传进去参数,出来结果list有长度.但是SSh整合后,这个方法返回的list就没有了长度!!!(我测试过,同样的参数值传进了这个方法,参数类型,参数值,都没有变化!!)这只能说明返回结果发生了变化,是这个方法内部写的有问题,但是为什么单独拉出来测试就没有问题?????? 解决方案 猜测无用,打一些日志出来,看看两次有什么不同 解决方案二: 单步调试一下,看到哪一步结果不一样了,也可以弹出几个me

使用JDBC4.0操作Oracle中BLOB类型的数据方法_oracle

在JDBC4.0推出后,它的从多的特性正在受到广泛地关注.下面通过本文给大家介绍JDBC4.0操作Oracle中BLOB类型的数据的方法. 需要的jar包 使用ojdbc6.jar 在/META-INF/MANIFEST.MF里可以看到Specification-Version: 4.0 建表 create sequence seq_blobmodel_id start with 1 increment by 1 nocache; create table blobmodel ( blobid

Javascript中常用类型的格式化方法总结

前言 相信大家都知道因为JavaScript是弱类型的语言,项目写大了会非常难以把控,容易出各种问题.幸好有强类型的TypeScript可以很大程度上弥补这一缺陷,但TypeScript提供的强类型是编译阶段的,虽然绝大部分类型相关的问题在编译阶段都能被覆盖到,但对于小部分在运行时才会出错的错误还是无能为力. 例如以下几种常见的情况:      1.定义为number的属性,赋值的时候,如果赋值源没有定义强类型,这样就会绕过编译检查的阶段,到运行时发现可能传进来的是个字符串.类内部再一顿加减乘除

Python中实现参数类型检查的简单方法

  这篇文章主要介绍了Python中实现参数类型检查的简单方法,本文讲解使用装饰器实现参数类型检查并给出代码实例,需要的朋友可以参考下 Python是一门弱类型语言,很多从C/C++转过来的朋友起初不是很适应.比如,在声明一个函数时,不能指定参数的类型.用C做类比,那就是所有参数都是void*类型!void类型强制转换在C++中被广泛地认为是个坏习惯,不到万不得已是不会使用的. Python自然没有类型强制转换一说了,因为它是动态语言.首先,所有对象都从Object继承而来,其次,它有强大的内省

Python中实现参数类型检查的简单方法_python

Python是一门弱类型语言,很多从C/C++转过来的朋友起初不是很适应.比如,在声明一个函数时,不能指定参数的类型.用C做类比,那就是所有参数都是void*类型!void类型强制转换在C++中被广泛地认为是个坏习惯,不到万不得已是不会使用的. Python自然没有类型强制转换一说了,因为它是动态语言.首先,所有对象都从Object继承而来,其次,它有强大的内省,如果调用某个不存在的方法会有异常抛出.大多数情况,我们都不需要做参数类型栓查,除了一些特殊情况.例如,某个函数接受一个str类型,结果

反射中调用方法传入参数类型一样 却报错

问题描述 反射中调用方法传入参数类型一样 却报错 object obj = Activator.CreateInstance(objectType);// 创建实例 反射创建一个实例 MethodInfo methodInfo = obj.GetType().GetMethod("Parse"); //调用里面的Parse 方法 这个方法需要参数 List methodInfo.Invoke(obj, new object[]{items}); //items 是List类型的参数 ,

求解释一下:.NET中,参数类型是协变的,方法的返回类型是抗变的。

问题描述 两个概念不太明白,求解释下~ 解决方案 解决方案二:https://zh.wikipedia.org/wiki/%E5%8D%8F%E5%8F%98%E4%B8%8E%E9%80%86%E5%8F%98看看这个你就懂了解决方案三:引用1楼mrjia的回复: https://zh.wikipedia.org/wiki/%E5%8D%8F%E5%8F%98%E4%B8%8E%E9%80%86%E5%8F%98看看这个你就懂了 嗯,里面讲的参数是抗变的,和C#相反.这样说对吧:协变,子类作父

举例讲解Java中数组和字符串类型的使用方法_java

Java数组 数组是具有相同数据类型的一组数据的集合,Java支持多为数组,一维数组的每个基本单元都是基本数据类型的数据,二维数组就是每个基本单元是一维数组的一维数组,以此类推,n维数组的每个基本单元都是n-1为数组的n-1维数组.下面以一维数组为例说明Java数组的用法. 1.数组声明 数组声明有如下两种形式(方括号的位置不同): int arr[]; int[] arr2; 2.数组初始化 数组初始化也有两种形式,如下(使用new或不使用new): int arr[] = new int[]

Java获取代码中方法参数名信息的方法_java

前言 大家都知道随着java8的使用,在相应的方法签名中增加了新的对象Parameter,用于表示特定的参数信息,通过它的getName可以获取相应的参数名.即像在代码中编写的,如命名为username,那么在前台进行传参时,即不需要再编写如@Parameter("username")类的注解,而直接就能进行按名映射. 如下的代码参考所示: public class T { private interface T2 { void method(String username, Stri