小编Kon*_*man的帖子

我该怎么命名这个扩展方法?

我已经编写了一个字符串操作的扩展方法.我很困惑我该怎么命名 - 因为这将成为团队中前端开发人员将使用的基础库的一部分.这是班级成员的简介.

信息:字符串类型的实用程序扩展方法.此方法的重载可能与空格[与参数中提供的内容]之外的字符相同.
目的:将所有中间或中间空格向下调整到单个空格.
例如:

string Input = "Hello      Token1    Token2     Token3    World!  ";
string Output = Input.TrimSpacesInBetween();
//Output will be: "Hello Token1 Token2 Token3 World!"
Run Code Online (Sandbox Code Playgroud)

我已阅读[实际上我正在阅读]框架设计指南,但这似乎困扰着我.

我认为有些选择..

TrimIntermediate();  
TrimInbetween();
Run Code Online (Sandbox Code Playgroud)

这是请求中的代码:

这是递归..

public static class StringExtensions
{
    public static string Collapse(this string str)
    {
        return str.Collapse(' ');
    }

    public static string Collapse(this string str, char delimeter)
    {
        char[] delimeterts = new char[1];
        delimeterts[0] = delimeter;
        str = str.Trim(delimeterts);

        int indexOfFirstDelimeter = str.IndexOf(delimeter);
        int indexTracker = indexOfFirstDelimeter + …
Run Code Online (Sandbox Code Playgroud)

.net c# extension-methods naming

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

System.StackOverflowException

请帮助我关于System.StackOverflowException即时设置.aspx将记录写入数据库我使用4层archietecture实现这一切都在工作但是当我编译页面然后它显示字段插入数据,当我插入数据到那些字段并clik提交按钮然后它显示System.StackOverflowException发生

public class Customers
{
    public Customers()
    {
        int CustomerID = 0;
        string Fname = string.Empty;
        string Lname = string.Empty;
        string Country = string.Empty;
    }
    public int CustomerID
    {
        get { return CustomerID; }
        set { CustomerID = value; }
    }
    public string Fname
    {
        get { return Fname; }
        set { Fname = value; }****
    }
    public string Lname
    {
        get { return Lname; }
        set { Lname = value; }
    }
    public string Country
    {
        get { return …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net stack-overflow c#-2.0

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

将数据附加到加密文件

我想使用 CryptoStream 将数据附加到已经加密的文件(AES、CBC 模式、填充 PKCS#7),而不需要读写整个文件。

例子:

旧内容: "Hello world..."

新内容: "Hello world, with appended text"

当然,我必须读取单个数据块,然后将其附加到已经存在的块中。在上面提到的示例中,我必须读取第一个块(14 个字节)中存在的字节数并将两个字节附加到第一个块,然后写入其余的附加文本

"Hello world, wi"
"th appended text"
Run Code Online (Sandbox Code Playgroud)

我面临的一个问题是我无法读取数据块中的字节数。有没有办法找出存在的字节数(在示例中为 14)?

另外我被卡住了,因为 CryptoStreamMode 只有读写成员,但没有更新。

有没有办法使用 CryptoStream 完成我想要的功能?

c# cryptostream

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

如何在类构造函数中初始化字典

我有一个具有type属性的类Dictionary<>。我正在尝试使用以下代码在构造函数中初始化属性。它给出了错误。为什么?

错误1

“权限”是“属性”,但其用法类似于“类型”

码:

public class UserModel
{
    public UserModel()   // constructor
    {
        Permissions = new Permissions<Guid, List<Guid>();
    }

    public Dictionary<Guid, List<Guid>> Permissions { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

c# dictionary

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

OOP澄清

如何防止基类方法被子类覆盖

.net c# oop

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

如何将泛型类型指定为泛型方法中的限制

我有一个像这样的泛型类:

class MyGenericClass<T> { }
Run Code Online (Sandbox Code Playgroud)

另一方面,我有一个聚合器类,我用它来获取MyGenericClass派生类的单例实例,其中每个实例由具体类类型和参数类型标识.也就是说,MyGenericClass<int>是从不同的MyGenericClass<string>和从MyDerivedGenericClass<int>; 每个都有一个单独的实例.

聚合器的主要成员是GetInstanceOf方法,它将返回指定类型的单例实例.问题是我想将类型指定为泛型参数,但我找不到一种方法来创建类型限制"参数必须是MyGenericClass(或派生)类型的任何参数类型".简而言之,我想要这样的事情:

T GetInstanceOf<T>() where T : MyGenericClass<> //This does not compile
Run Code Online (Sandbox Code Playgroud)

那么,我该怎么办?有没有办法指定这样的限制?

编辑:GetInstanceOf<T>方法确实返回T,而不是void.

.net c# generics

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

找不到类型为"System.Web.HttpPostedFile"的构造函数

我正在尝试用HttpPostedFile创建一个实例

var obj2 = Activator.CreateInstance(
    typeof(HttpPostedFile), 
    BindingFlags.NonPublic | BindingFlags.Instance,
    null,
    new object[] { },
    System.Globalization.CultureInfo.CurrentCulture
);
Run Code Online (Sandbox Code Playgroud)

但我收到错误'类型'构造函数'System.Web.HttpPostedFile'找不到.'.

有没有其他方法来创建HttpPostedFile的实例或我做错了什么?

c# asp.net reflection

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

嵌入Interop类型问题

当然Embed interop类型功能是一件好事,但即使在简单的场景中也无法让它与我合作,所以请建议这是我在没有安装powerPoint的机器上运行我的项目时得到的错误:

在此输入图像描述

我的代码非常简单我只是从powerPoint创建对象,创建演示文稿并在其中滑动写入内容.

我嵌入的库是OfficeMicrosoft.Office.Interop.PowerPoint

将构建配置转换为x68并没有解决它,

我正在构建Windows应用程序并按下单击按钮,如下所示:

 private void button1_Click(object sender, EventArgs e)
 {
     var pp = new powerpoint.Application();
     var oPres=pp.Presentations;
     pp.Visible = Office.MsoTriState.msoTrue;
     powerpoint.Presentation  oPre= oPres.Add(Office.MsoTriState.msoTrue);

     powerpoint.Slides oSlides = oPre.Slides;
     powerpoint.Slide oSlide = oSlides.Add(1, powerpoint.PpSlideLayout.ppLayoutText);
     powerpoint.Shapes oShapes = oSlide.Shapes;
     powerpoint.Shape oShape = oShapes[1];
     powerpoint.TextFrame oTxtFrame = oShape.TextFrame;
     powerpoint.TextRange oTxtRange = oTxtFrame.TextRange;
     oTxtRange.Text = "All-In-One Code Framework";

     string fileName = Path.GetDirectoryName(
         Assembly.GetExecutingAssembly().Location) + "\\Sample1.pptx";
     oPre.SaveAs(fileName,
         powerpoint.PpSaveAsFileType.ppSaveAsOpenXMLPresentation,
         Office.MsoTriState.msoTriStateMixed);
     oPre.Close();

     pp.Quit();
     pp = null;
 }
Run Code Online (Sandbox Code Playgroud)

在顶部,我补充说

 using powerpoint …
Run Code Online (Sandbox Code Playgroud)

.net c# powerpoint visual-studio

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

处理InnerException时,空传播+空合并运算符无法正常工作

对于我正在开发的简单控制台应用程序,我想实现一个非常基本的异常处理(只打印异常消息并终止程序).我想要实现的逻辑是:如果异常有内部异常,则打印内部消息; 否则打印自己的例外消息.

我尝试使用新的C#6空传播运算符实现它,如下所示:

try
{
    //Test case 1:
    throw new Exception("Foo", new Exception("Bar"));

    //Test case 2:
    throw new Exception("Foo");
}
catch(Exception ex)
{
    Console.WriteLine("--- Error: " + 
        ex.InnerException?.Message ?? ex.Message);
}
Run Code Online (Sandbox Code Playgroud)

问题是,虽然测试用例1按预期工作(打印--- Error: Bar),但测试用例2只是打印--- Error:而不是预期--- Error: Foo.

我认为我在某种程度上误解了null传播运算符的工作原理(可能它与null合并运算符一起工作).我错过了什么?

注意:请不要告诉我如何使用C#5实现相同的行为(谢谢,但我已经知道了); 我特别感兴趣的是null传播运算符是如何工作的.

.net c# c#-6.0

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

C#:类似于C#的php ctype_digit函数?

我有一个字符串,我想检查它只包含数字.我真的不想(或者不需要)解析它或任何东西,我只是想知道它除了数字之外不包含任何东西(也没有浮点分隔符,只是数字).

PHP有一个很好的函数叫做ctype_digit.在.Net Framework中,C#有什么类似的东西吗?或者我需要使用正则表达式或类似的东西?

为此创建一个正则表达式当然会非常简单,但如果有更好的方法,我不想使用它:p

.net c# string validation digits

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