小编Evg*_*eny的帖子

计算bool数组中真(或假)元素的数量?

假设我有一个填充了布尔值的数组,我想知道有多少元素是真的.

private bool[] testArray = new bool[10] { true, false, true, true, false, true, true, true, false, false };

int CalculateValues(bool val)
{
    return ???
}
Run Code Online (Sandbox Code Playgroud)

如果val为真,则CalculateValues应返回6,如果val为false,则返回4.

明显的解决方案:

int CalculateValues(bool val)
{
    int count = 0;
    for(int i = 0; i<testArray.Length;i++)
    {
        if(testArray[i] == val)
            count++;
    }
    return count;
}
Run Code Online (Sandbox Code Playgroud)

有"优雅"的解决方案吗?

c# arrays boolean

23
推荐指数
3
解决办法
2万
查看次数

"无法在dll中找到名为[function]的入口点"(c ++到c#类型转换)

我有一个来自第三方的dll,它是用C++编写的.以下是来自dll文档的一些信息:

//start documentation

RECO_DATA{
wchar_t Surname[200];
wchar_t Firstname[200];
}
Run Code Online (Sandbox Code Playgroud)

描述:用于接收功能结果的数据结构.所有功能结果将存储为Unicode(UTF-8).

方法:

bool recoCHN_P_Name(char *imgPath,RECO_DATA *o_data);
Run Code Online (Sandbox Code Playgroud)

输入:

char * imgPath
Run Code Online (Sandbox Code Playgroud)

此功能识别的图像位置的完整路径

RECO_DATA * o_data
Run Code Online (Sandbox Code Playgroud)

用于接收功能结果的数据对象.函数返回:如果成功则返回true,否则返回false.

//end documentation
Run Code Online (Sandbox Code Playgroud)

我试图从我的C#应用​​程序调用recoCHN_P_Name.为此,我想出了这段代码:

导入dll的代码:

    public class cnOCRsdk
{
    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
    public struct RECO_DATA{
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst=200)]
        public string FirstName;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 200)]
        public string Surname;
        }

    [DllImport(@"cnOCRsdk.dll", EntryPoint="recoCHN_P_Name")]
    public static extern bool recoCHN_P_Name(byte[] imgPath, RECO_DATA o_data);
}
Run Code Online (Sandbox Code Playgroud)

调用函数的代码:

            cnOCRsdk.RECO_DATA recoData = new cnOCRsdk.RECO_DATA();

        string path = @"C:\WINDOWS\twain_32\twainrgb.bmp";

        System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
        byte[] bytes …
Run Code Online (Sandbox Code Playgroud)

c# c++ dll dllimport extern

21
推荐指数
4
解决办法
6万
查看次数

"代理类需要WebServiceBindingAttribute"

我正在开发一个对WebService进行异步调用的应用程序.

我添加了一个代理类来进行异步调用.代码编译并正常运行,但每当我尝试双击解决方案资源管理器中的代理类(Visual Studio 2008)时,我会看到一个页面

要在加载设计器之前防止可能的数据丢失,必须解决以下错误:代理类需要WebServiceBindingAttribute.

我的代理类已经这样定义了

namespace AsyncCaller
{
    [WebServiceBindingAttribute(Name = "AsyncRequestSoap", Namespace = "http://tempuri.org/")]
    public class AsyncCallerProxy : SoapHttpClientProtocol
    {
        public AsyncCallerProxy()
        {
            this.Url = "http://localhost/MyAsyncService/AsyncService.asmx";
        }
Run Code Online (Sandbox Code Playgroud)

所以我看不出错误的原因.

这是一个非常小的问题,因为我仍然可以运行该应用程序,但我很好奇.

web-services visual-studio-2008

12
推荐指数
2
解决办法
1万
查看次数

无法绑定到DataSource上的属性或列名称.参数名称:dataMember

当我尝试绑定到System.Type.Name时,这是我遇到的异常.

这是我正在做的事情:

this.propertyTypeBindingSource.DataSource = typeof(System.Type);

/* snip */

this.nameTextBox1.DataBindings.Add(
    new System.Windows.Forms.Binding(
        "Text", 
        this.propertyTypeBindingSource, 
        "Name", true));
Run Code Online (Sandbox Code Playgroud)

是否有一些绑定到System.Type的技巧,是不允许的还是有任何解决方法?绑定到其他类型没有问题.

c# asp.net data-binding

8
推荐指数
2
解决办法
3万
查看次数

单元测试和对象范围 - 如何测试私有/内部方法等?

假设我有一个类库的项目.我在该库中有一个类,这个类有一些只在类中使用的方法.像这样:

public class MyClass
{
  public void MyPublicMethod
  {
    int k

    // do something ...

    int z = MyInternalMethod(k);
    // do something else ...

  }

  internal int MyInternalMethod(int i)
  {
        // do something ...

  }
}
Run Code Online (Sandbox Code Playgroud)

现在我想为这些方法编写单元测试.我会创建一个"单元测试"项目,从中引用nunit并写下这样的东西

[TestFixture]
public class UnitTests
{
  private MyClass myClass;

  [SetUp]
  public void SetupTest
  {
    myClass = new MyClass();
  }

  [Test]
  public void TestMyInternalMethod
  {
    int z = 100;
    int k = myClass.MyInternalMethod(z); //CAN NOT DO THIS!
    Assert.AreEqual(k, 100000);
  }

  [TearDown]
  public void TearDown
  { …
Run Code Online (Sandbox Code Playgroud)

.net nunit unit-testing

5
推荐指数
1
解决办法
1132
查看次数

我可以在_Layout.cshtml中有条件地渲染部分视图吗?

假设我有一个_Layout.cshtml,我在其中渲染左侧边栏,这对我网站的每个页面都是通用的.沿着这些方向的东西 - 例如菜单

<div id="left-sidebar">
    @Html.Action("_MenuView", "LeftSideMenu")
</div>
Run Code Online (Sandbox Code Playgroud)

我想要的一个功能是添加另一个局部视图,但只在网站的某些部分显示.

例如,在博客部分中,我可能想要显示帖子类别列表或帖子的树视图.

<div id="left-sidebar">
    @Html.Action("_MenuView", "LeftSideMenu")

    @if ("???")
    {
        @Html.Action("_BlogTreeView", "BlogEntries")
    }
</div>
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?我知道如果我正在渲染的视图由BlogController返回,我想显示"_BlogTreeView"...我从哪里开始?

asp.net-mvc partial-views

5
推荐指数
1
解决办法
4441
查看次数

PostgreSQL-显示光标获取的数据

我已经成功创建了返回游标集的函数,即:

CREATE OR REPLACE FUNCTION select_multiple(refcursor, refcursor)
  RETURNS SETOF refcursor AS
$BODY$
BEGIN
  OPEN $1 FOR SELECT testtemptable.myid FROM testtemptable;   -- Open the first cursor
  RETURN NEXT $1;                                                                              -- Return the cursor to the caller

  OPEN $2 FOR SELECT testtemptable.name FROM testtemptable;   -- Open the second cursor
  RETURN NEXT $2;                                                                              -- Return the cursor to the caller
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
Run Code Online (Sandbox Code Playgroud)

我调用该函数,并希望每个游标返回5行,看起来好像是这样。这就是我所说的:

BEGIN;
select select_multiple('a', 'b');
FETCH ALL IN "a";
FETCH ALL IN "b";
COMMIT;
Run Code Online (Sandbox Code Playgroud)

我的问题是,但是,我如何才能“可视化”数据以验证返回的内容?“数据输出”选项卡什么都没有显示,而“消息”选项卡显示

Query result with …
Run Code Online (Sandbox Code Playgroud)

postgresql cursor fetch

3
推荐指数
1
解决办法
7754
查看次数

将C#数据类型参数传递给用C++编写的dll?

仍在研究从这里开始的问题 从C#调用C++ DLL函数:结构,字符串和wchar_t数组.,但采用不同的方法.

按照从非托管代码调用托管代码的示例,反之亦然,我在C++中编写了一个托管包装器来访问非托管C++ DLL中的unmanages类.

它看起来像这样:

//in header file
public __gc class TSSLDllWrapper
{
public:
TSSLDllWrapper();
     //this is the unmanaged class
CcnOCRsdk * _sdk;

bool convertHKID_Name(char *code, RECO_DATA *o_data);
};

//in .cpp file
TSSLDllWrapper::TSSLDllWrapper(void)
{
  _sdk = new CcnOCRsdk();
}

bool TSSLDllWrapper::convertHKID_Name(char *code, RECO_DATA *o_data)
{
return _sdk->convertHKID_Name(code, o_data);
}

//C++ RECO_DATA structure definition:
struct RECO_DATA{
wchar_t FirstName[200];
wchar_t Surname[200];
};
Run Code Online (Sandbox Code Playgroud)

现在我有一个可以导入到我的C#项目的DLL.

但问题是:当我想从dll文件调用该方法时,如下所示:

TSSLDllWrapper wrapper = new TSSLDllWrapper();
bool res = wrapper.convertHKID_NameSimple( //need to pass …
Run Code Online (Sandbox Code Playgroud)

c# c++ types

2
推荐指数
1
解决办法
6257
查看次数

你会如何重构这段代码?

这段代码在Windows Compact Framework上运行,它的作用是显而易见的.看起来它应该被重构(特别是考虑到我可能想稍后添加cmd.ExecuteResultSet()),但我看不到一种优雅的方式来做到这一点.任何想法都赞赏.

internal void RunNonQuery(string query)
{
    string connString = GetLocalConnectionString();

    using (SqlCeConnection cn = new SqlCeConnection(connString))
    {
        cn.Open();
        SqlCeCommand cmd = cn.CreateCommand();
        cmd.CommandText = query;
        cmd.ExecuteNonQuery();
    }
}  

internal int RunScalar(string query)  
{
    string connString = GetLocalConnectionString();

    using (SqlCeConnection cn = new SqlCeConnection(connString))
    {
        cn.Open();
        SqlCeCommand cmd = cn.CreateCommand();
        cmd.CommandText = query;
        return int.Parse(cmd.ExecuteScalar().ToString());
    }
}
Run Code Online (Sandbox Code Playgroud)

c# refactoring compact-framework

1
推荐指数
1
解决办法
377
查看次数