我A
上课了:
public abstract class A
{
}
Run Code Online (Sandbox Code Playgroud)
然后我有B
一个源于它的课程:
public sealed class B : A
{
public void SomeMethod()
{
var method = this.GetType().GetMethod("AddText");
}
private void AddText(string text)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
为什么GetMethod
返回null?
我有一个接受参数的扩展方法T
.此参数是数字类型,以下之一:byte,short,int和long.
我需要检查是否T
等于0.怎么可能这样做?
public static void WriteFlaggedValue<T>(this OutPacket outPacket, uint flag, T value, ref uint outputFlag) where T : struct,
IComparable,
IComparable<T>,
IConvertible,
IEquatable<T>,
IFormattable
{
if (value == 0)
{
}
}
Run Code Online (Sandbox Code Playgroud) 我有以下课程:
public abstract class MapObjects<MapleMapObject> {
private Map map;
private HashMap<Integer, MapleMapObject> objects;
public MapObjects(Map map) {
this.map = map;
this.objects = new HashMap<>();
}
public void add(MapleMapObject object) {
objects.put(map.getObjectId(), object);
onAdd();
}
public void remove(MapleMapObject object) {
onRemove();
objects.remove(object.getObjectId());
}
protected abstract void onAdd();
protected abstract void onRemove();
}
Run Code Online (Sandbox Code Playgroud)
我想创建一个迭代器,以便我可以迭代从这个类扩展的类.例如,如果我有一个名为的类MapCharacters extends MapObjects<Character>
,我希望能够执行以下操作:
characters = new MapCharacters(this);
for (Character character : characters)
Run Code Online (Sandbox Code Playgroud)
怎么能实现这一目标?
我有一个名为的函数install_cont
,它从我的 bash 脚本中调用了两次。但是,在该函数内部有一个代码块,仅当布尔参数为 true 时我才想执行该代码块。在Python中我会这样做:
def install_cont(expres=False):
if expres:
# Do some code...
install_cont(True)
install_cont() # Can call with default False
Run Code Online (Sandbox Code Playgroud)
我如何在 bash 中实现这一目标?在网上阅读,我明白所有变量都是字符串。然而,实现类似布尔参数的最佳方法是什么?
我有一个username
和password
变量。我想将它们编码为 base64,格式为username:password
.
#!/bin/bash
username=username
password=password
echo Encoding username/password...
echo $username:$password | base64
Run Code Online (Sandbox Code Playgroud)
这可行,但我不确定如何将输出放入变量中而不是将其写入控制台。
顺便说一句,为什么输出与https://www.base64encode.org/这样的网站不同?
我有一个DateTime值列表,其中的日期包含小时和分钟:
List<DateTime> times = times = new List<DateTime>()
{
new DateTime(2019, 01, 01, 17, 00, 00),
new DateTime(2019, 01, 01, 18, 45, 00),
new DateTime(2019, 01, 01, 19, 00, 00),
new DateTime(2019, 01, 01, 19, 30, 00),
new DateTime(2019, 01, 01, 22, 30, 00)
};
DateTime current = DateTime.Now;
Run Code Online (Sandbox Code Playgroud)
我将它们都放在一个ComboBox中,我想做某种算法,以便在加载表单时,它将检查当前时间并找到与当前时间最接近的值,然后选择包含该小时的ComboBox项。
我该如何实现?我试图遍历所有它们并检查至少一个小时,但这似乎不起作用。有更聪明的方法吗?
例如:如果当前时间是17:32,它将选择17:00,因为那是最接近的时间。但是,如果当前时间是18:20,它将选择18:45,依此类推。
我有一个名为的抽象类CharacterBase
。在里面,我有一些属性。例如:
public int Level { get; set; }
Run Code Online (Sandbox Code Playgroud)
我有一个名为的类Character
,它继承自CharacterBase
。我希望能够以某种方式覆盖该Level
属性,并成为我自己的属性。例如:
int level;
public (override?) int Level
{
get
{
return level;
}
set
{
level = value;
Console.WriteLine("The new level is " + level + ".");
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以覆盖此属性,并使其成为我自己的属性而不是抽象类的属性?
编辑:我标记Level
为虚拟属性。这是正确的方法吗?
我正在尝试建立一个我在网上找到的项目.出于某种原因,即使看起来我不应该,我也会收到错误.它有以下几类:
template <typename K, typename V>
class smit
{
public:
smit(map<K, V>* std, vector<K>* ky, SRWLOCK* lock, int t)
{
stdmap = std;
keys = ky;
maplock = lock;
top = t;
index = 0;
}
~smit()
{
ReleaseSRWLockShared(maplock);
}
V* operator -> ()
{
return &stdmap->at(keys->at(index));
}
V* get()
{
return &stdmap->at(keys->at(index));
}
void operator ++ ()
{
index++;
}
bool belowtop()
{
return index < top;
}
int getindex()
{
return index;
}
private:
map<K, V>* stdmap;
vector<K>* …
Run Code Online (Sandbox Code Playgroud) 我有一个名为Item
class的类,它作为一个抽象类,但没有定义为一个.这个类有一个MaxPerStack
属性:
public class Item
{
public short MaxPerStack
{
get
{
return this.Data.MaxPerStack;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我还有一个名为Equip
派生Item
类的类,并且还有一个名为property的属性MaxPerStack
,声明为new
:
public class Equip : Item
{
public new short MaxPerStack
{
get
{
return 1;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我调用了以下方法Add
,它使用以下MaxPerStack
属性item
:
public void Add(Item item)
{
Console.WriteLine("Stack: {0}.", item.MaxPerStack);
}
Run Code Online (Sandbox Code Playgroud)
当我做:
Add(new Equip());
Run Code Online (Sandbox Code Playgroud)
它属于一个人的MaxPerStack
财产.Item
Equip
为什么会这样?