我已经编写了一个字符串操作的扩展方法.我很困惑我该怎么命名 - 因为这将成为团队中前端开发人员将使用的基础库的一部分.这是班级成员的简介.
信息:字符串类型的实用程序扩展方法.此方法的重载可能与空格[与参数中提供的内容]之外的字符相同.
目的:将所有中间或中间空格向下调整到单个空格.
例如:
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) 请帮助我关于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) 我想使用 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 完成我想要的功能?
我有一个具有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) 我有一个像这样的泛型类:
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.
我正在尝试用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的实例或我做错了什么?
当然Embed interop类型功能是一件好事,但即使在简单的场景中也无法让它与我合作,所以请建议这是我在没有安装powerPoint的机器上运行我的项目时得到的错误:

我的代码非常简单我只是从powerPoint创建对象,创建演示文稿并在其中滑动写入内容.
我嵌入的库是Office和Microsoft.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) 对于我正在开发的简单控制台应用程序,我想实现一个非常基本的异常处理(只打印异常消息并终止程序).我想要实现的逻辑是:如果异常有内部异常,则打印内部消息; 否则打印自己的例外消息.
我尝试使用新的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传播运算符是如何工作的.
我有一个字符串,我想检查它只包含数字.我真的不想(或者不需要)解析它或任何东西,我只是想知道它除了数字之外不包含任何东西(也没有浮点分隔符,只是数字).
PHP有一个很好的函数叫做ctype_digit.在.Net Framework中,C#有什么类似的东西吗?或者我需要使用正则表达式或类似的东西?
为此创建一个正则表达式当然会非常简单,但如果有更好的方法,我不想使用它:p
c# ×10
.net ×7
asp.net ×2
c#-2.0 ×1
c#-6.0 ×1
cryptostream ×1
dictionary ×1
digits ×1
generics ×1
naming ×1
oop ×1
powerpoint ×1
reflection ×1
string ×1
validation ×1