- You can have as many lines as you want within method
M()
- No single line can be longer than 100 chars
- To get your score, divide the '# of expanded lines' by the '# of original line(s)'
- Based on the default output formatting of https://sharplab.io, no re-formatting allowed!!
- But you can format the intput however you want, i.e. make use of the full 100 chars
- Must compile with no warnings on https://sharplab.io (allows C# 7 features)
- But doesn't have to do anything sensible when run
- You cannot modify the code that is already there, i.e.
public class C {}
andpublic void M()
- Cannot just add
async
topublic void M()
, that's too easy!!
- Cannot just add
- You can add new
using ...
declarations, these do not count towards the line count
using System;
public class C {
public void M() {
// Only allowed to change the code in here
// CAN'T make M() async, that's too easy!!
}
}
If you want to, paste your sharplab.io links below along with the score
Available on sharplab.io
using System;
public class C {
public void M() {
Func<string> test = () => "blah"?.ToString();
}
}
This counts as 1 line of original code (only code inside method M()
is counted)
This expands to 23 lines (again only lines of code inside the braces ({
, }
) of class C
are counted, as formatted by sharplab.io)
Giving a score of 23 / 1 = 23
public class C
{
[CompilerGenerated] // <-- START counting from this line
[Serializable]
private sealed class <>c
{
public static readonly C.<>c <>9;
public static Func<string> <>9__0_0;
static <>c()
{
// Note: this type is marked as 'beforefieldinit'.
C.<>c.<>9 = new C.<>c();
}
internal string <M>b__0_0()
{
return "blah";
}
}
public void M()
{
if (C.<>c.<>9__0_0 == null)
{
C.<>c.<>9__0_0 = new Func<string>(C.<>c.<>9.<M>b__0_0);
}
} // <-- STOP counting at this line
}
But that scales superlinearly.
The best I can get (before
error CS8078: An expression is too long or complex to compile
) is 790:https://sharplab.io/#b:master/K4Zwlgdg5gBAygTxAFwKYFsB0AZSBHAbgFgAoUSWALRgF54k0sAVACwCdUBDAEwsyc4gA1iH6ChAHkQoMmAGLAIAYwncEETujBKAfDuJlw0GAE1a9GVgDCAewA2d1EuRgbEUQHFUEVG22YASQBRCGB0X04AI0dVdU1tfVJyYwANc2lGeUUVDNlWDh4+AWFRYslcrAVlWI0tXT0DUlIAB2Bo7RglO0EQGCsYAG9SGBGYVvalGAA3GzBuGABZAAoASkHSQXVJ6gBBVYHkNgQBzgB3TjBkJaWzi+QYPZWV1YBtACYAXRpby4fVlYIAF8lJxkEoWAMOMhgGwIDAflcEX8nqtUQDAVCYXCdkDSGYAEJLNS1DpKFYDBBgVB2eaY2GdF6EpSYMkfTBWJZMl5KNlKJZkp5AtKccw4mCEzirTAAJVQIGAdmQK0wcGpTkRIC2MAAHrQdDANudfkiTUb7qa7vCzVbLRbjda7eaHc67obbS77e6vZ6fU7vX7fTbA463cGPQGI0HI46o7GYyGSPHw3Hk0n/Sn0wm02HM6m87mC77Q9H8zmyyXCxWi4nS1W6xnyw36wji0229nm7X22bWx3u5X+42kdrMNq0QDhqNAaRAUA===