我需要创建一个函数,使用该charAt
方法将所有大写字符设置为小写.我曾尝试使用类型转换将int
值更改为char
但之后丢失了.
/********************************************************************************
This function will calculate the integer average of characters in the array
********************************************************************************/
public static void lowerCase(char[] letter) {
char mean;
mean = (char) ((int) ch + 32);
}
Run Code Online (Sandbox Code Playgroud) 我编写了这个类SomeObject
,我想定义一个const
这个对象的实例来保存/重用我的TestCase
s.我应该如何重写下面的代码来实现这种行为?
[TestFixture]
public class SomeObjectTests
{
private const SomeObject item0 = new SomeObject(0.0); // doesn't work
[TestCase(item0, ExpectedResult = 0.0)]
public double TestSomeObjectValue(SomeObject so)
{
return so.Value;
}
[TestCase(item0, ExpectedResult = "0.0")]
public string TestSomeObjectValueString(SomeObject so)
{
return so.ValueString;
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
除string之外的引用类型的const字段只能用null初始化.
我正在使用NUnit 3.0.1和Visual Studio 2015,并且可以确认我的问题在Visual Studio 2013中没有发生.
清理并构建解决方案后,测试资源管理器显示尚未运行100个测试.但是,当我在测试资源管理器中单击"全部运行"时,只有大约20%的单元测试运行,其余部分保持灰色,仍然标记为尚未运行.
但是,如果我再次清理并构建,它会再次显示100个尚未运行的测试,但如果我右键单击"未运行测试"组并选择"运行选定的测试",它将正确运行所有测试.
我的测试目前包含在a中[TestFixture]
,似乎只有我[TestCaseSource]
的10个中的2个正在运行.
是否有与Python 的rangestep
等效的 C# ?
文档:
对于正数
step
,范围的内容r
由公式r[i] = start + step*i
wherei >= 0
和确定r[i] < stop
。对于负数
step
,范围的内容仍然由公式确定r[i] = start + step*i
,但约束条件是i >= 0
和r[i] > stop
。
例子:
>>> list(range(0, 10, 3))
[0, 3, 6, 9]
>>> list(range(0, -10, -1))
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
Run Code Online (Sandbox Code Playgroud) 使用xUnit.net,它是可能的Theory
有它MemberData
派生类起源的?
public abstract class BaseTest
{
public abstract IEnumerable<object[]> Data();
[Theory]
[MemberData(nameof(Data))]
public void TestData(string expected, string actual)
{
// assert goes here
}
}
public class ComplexTest : BaseTest
{
public override IEnumerable<object[]> Data()
{
// data goes here
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码导致以下错误消息:
System.NotSupportedException:不支持指定的方法。
我对insert()
Python中的函数如何工作感到困惑。我试图反转一个字符串,我想我可以通过简单地创建一个以相反顺序存储原始字符串的字符的列表来做到这一点。这是我的代码:-
def reverse(text):
rev = []
l = len(text) - 1
for c in text:
rev.insert(l, c)
l -= 1
return rev
print reverse("Hello")
Run Code Online (Sandbox Code Playgroud)
但是我得到的输出是['o', 'H', 'l', 'e', 'l']
,这显然是错误的。任何帮助,将不胜感激。我应用的逻辑有问题吗?
我对 Python(以及一般的编程)相当陌生,所以我经常遇到非常愚蠢的问题,例如下面的问题。
我想要的是重复检查用户输入中的所有字符是否都是符号。当输入这样的输入时,我想打印该字符串。
由于似乎没有一种方法可以专门测试符号,因此我决定首先测试字母,然后测试数字,如果两者都为负数,那么它应该打印文本。
这是我的代码:
while True:
symbols = input("Enter symbol string:")
if symbols == symbols.isalpha():
print (symbols.isalpha())
elif not a == a.isalpha():
print (a.isalpha())
break
Run Code Online (Sandbox Code Playgroud) 我的表有问题,我想使用 group by 连接字符串字段。我这里有这种情况:
USER | TEXT
A | 'hello'
A | 'by'
B | 'hi'
B | '9'
B | 'city'
Run Code Online (Sandbox Code Playgroud)
我想得到这个结果:
USER | TEXT
A | 'hello by'
B | 'hi 9 city'
Run Code Online (Sandbox Code Playgroud) 我想以一个(或多个)整数间隔打印一个百分比值。下面的代码描述object.ProgressChanged
为一个EventHandler<EventArgs>
和maxPercent
作为一个全局int
变量。
object.ProgressChanged += (sender, args) => (
if (maxPercent < ((int) args.ProgressPercentage)) {
maxPercent = (int) args.ProgressPercentage;
Console.WriteLine(maxPercent + "%");
}
)
Run Code Online (Sandbox Code Playgroud)
我可以通过这样做轻松解决这个问题:
object.ProgressChanged += (sender, args) => aFunction(args);
Run Code Online (Sandbox Code Playgroud)
whereaFunction
包含=>
第一段代码中运算符之后的所有相同代码。
如果可能的话,我正在寻找一种更优雅的方法来解决这个问题。有小费吗?
来自https://blogs.msdn.microsoft.com/dotnet/2017/03/09/new-features-in-c-7-0/:
我们允许"丢弃"作为输出参数,以_的形式,让你忽略你不关心的参数:
p.GetCoordinates(out var x, out _); // I only care about x
Run Code Online (Sandbox Code Playgroud)
请考虑以下代码:
void Foo(out int i1, out int i2)
{
i1 = 1;
i2 = 2;
}
int _;
Foo(out var _, out _);
Console.WriteLine(_); // outputs 2
Run Code Online (Sandbox Code Playgroud)
问题:
为什么在此上下文中输出"discard"out参数?
此外,不应该有"已定义的范围"错误out var _
?
int i;
Foo(out var i, out i);
Console.WriteLine(i); // Error: A local variable or function named 'i'
// is already defined in this scope
Run Code Online (Sandbox Code Playgroud)